본문 바로가기
프로그래밍/C언어

bit연산자 - & | ^ << >> (1)

by 리뷰하는 (게임)프로그래머_리프TV 2010. 3. 8.

비트 연산자에 대해서,

비트 연산자는 &(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