본문 바로가기

Programming (IT)

2의 승수 출력하기

반응형
코드는 아주 간단하다.

#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의 배수를 구할 수 있다.