비트 연산자에 대해서,
비트 연산자는 &(and), I(or), ^(xor), <<, >> (shift)연산자가 존재한다.
먼저 가장 ^(xor)에 대해서 살펴 보자.
#include <stdio.h>
void main()
{
int val3 = 127;
int key = 112;
int val = 35;
int val2 = 35;
int x = 5;
int y = 10;
// xor를 사용한 값 변환
printf( "%d\n", val );
val ^= val;
printf( "%d\n", val );
val ^= val2;
printf( "%d\n", val );
// 간단한 암호화
printf( "%d\n", val3 );
val3 ^= key;
printf( "%d\n", val3 );
val3 ^= key;
printf( "%d\n", val3 );
// xor를 사용한 swap
printf( "%d %d\n", x, y );
x ^= y;
printf( "%d %d\n", x, y );
y = x^y;
printf( "%d %d\n", x, y );
x = x^ y;
printf( "%d %d\n", x, y );
}
결과를 보면 알 수 있겠지만,
xor를 사용하여 값을 0으로 다시 본래의 값으로 변경하는 것이 가능하며,
특정 키값을 사용하여 간단한 암호와,
tmp 변수 없이 x,y값을 서로 변경 하는것이 가능하다.
'프로그래밍 > C언어' 카테고리의 다른 글
bit연산자 - & | ^ << >> (3) (0) | 2010.03.08 |
---|---|
bit연산자 - & | ^ << >> (2) (0) | 2010.03.08 |
랜덤함수-rnd()-srand() 사용법 (0) | 2010.03.05 |
삼항 연산자 (0) | 2010.03.05 |
콘솔창에 키보드 입력 받기. (0) | 2010.03.05 |