반응형

C 언어, 10진 정수를 2진수로 출력하기

 

글. 오상문 sualchi@daum.net

 

#include <stdio.h>

 

void print_binary(unsigned int x)

{
  char bin[32];       // 이진수 저장 버퍼
  unsigned int pos=1; // ... 00000001
  int count=0, i=0;

 

  while(x>0) {
    bin[i++] = (x&pos)?'1':'0';
    x -= x&pos;  // 검사한 부분은 빼줌
    pos <<= 1;   // 확인 위치 이동
    count++;     // 이진수 자리 수 증가
  }

 

  for(i=count-1; i>=0; i--)  // 뒤집어서 출력
    printf("%c", bin[i]);
}

 

int main(void)
{
  int a = 12;
  printf("%d의 2진수: ", a);   // 12의 2진수: 1100
  print_binary(12);
  return 0;
}

 

<이상>

 

반응형

+ Recent posts