자바에는 >>> 비트연산자가 있다. 가장 왼쪽 bit를 0으로 채우면서 shift한다. C에는 이러한 연산자가 없다. C에서는 가장 왼쪽비트를 그대로 두고 쉬프트 한다.
예를 들어 -1을 >> 쉬프트한다고 하면, -1이 된다.
int i = -1;
printf("%d\n", i >> 1);
-1의 비트 배열
11111111 11111111 11111111 11111111
>> 1 하더라도 오른쪽이 1로 채워지기 때문에 값의 변화가 없다.
10000000 00000000 00000000 00000000
위의 값을 >> 2하게 되면
10100000 00000000 00000000 00000000
문제
해답
Recent Posts
Archive Posts
Tags