본문 바로가기

프로그래밍/시스템

[C] 하위 4번째 비트가 항상 1인 숫자 하나를 랜덤하게 출력하는 프로그램

반응형
 // 하위 4번째 비트가 항상 1인 숫자 하나를 
 // 랜덤하게 모니터에 출력하세요

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
 srand((unsigned int)time(NULL));
 int number;


 for(;;)
 {
 number = 0x00000001 << 3  | rand();  //  number = 0x00000008 | rand()도 가능 

 printf("%d\n",number);
 Sleep(500); // 0.5초만 좀 쉬자
 }
}

 

<< : 오른쪽으로 비트 쉬프트  
    
16진수 = 한 자리에 4개의 비트가 숨겨져있음. 두 자리당 1바이트.
            
즉 0x00000001은  

0x0000000(0001)랑 똑같습니다. 괄호안에 있는 비트는 16진수 한 자리를 2진수로 풀어쓴 것

(0001) 를 << 3 하면? 

(1000) = 8

즉 0x00000008이랑 같습니다.

0x00000001 << 3 = 0x00000008 



반응형