반응형
코드는 아주 간단하다.
#include <stdio.h>
int main()
{
unsigned int num = 1;
while( 0x80000000 > num){
printf(" %d \n",num);
num <<= 1;
}
}
여기서 주의해서 볼 곳은 num <<=1 이다.
초기값이 1이다 즉. 0x00000001이다.
이것을 2진수로 표현하면
0000 0000 0000 0000 0000 0000 0000 0001 이다 (10진수 값은 1)
이걸 왼쪽으로 한 번 쉬프트 한다.
그 값은 0x00000002이다.
2진수로 표현하면
0000 0000 0000 0000 0000 0000 0000 0010 이다. (10진수 값은 2)
이걸 왼쪽으로 한 번 더 쉬프트 한다.
그 값은 0x00000004이다.
2진수로 표현하면
0000 0000 0000 0000 0000 0000 0000 0100 이다. (10진수 값은 4)
이렇게 쉬프트를 이용하면 간단하게 2의 배수를 구할 수 있다.