2010년 1월 28일 목요일

비트결과값 문자 변환(binary변환 소스 예제)

dd

#include <stdio.h>

char * itobs(int, char *);

int main(void)
{
   char bin_str[8 * sizeof(int) + 1 ];
   int number;
   puts("Enter integers and see them in binary.");
   puts("Non-numeric input terminates program.");
   while(scanf("%d", &number) == 1)
      printf("%d is %s\n", number, itobs(number, bin_str));
   return 0;
}

char *itobs(int n, char * ps)
{
   int i;
   static int size = 8 * sizeof(int);
   for(i = size - 1; i >= 0; i--, n >>= 1)
      ps[i] = (01 & n) + '0';
   ps[size] = '\0';
   return ps;
}

위 소스에서 밑줄 쳐 있는 부분이 비트결과값에 '0'를 더함으로 해서 결과값이 정수가 아닌 ASCII값으로 변환시키는 부분이다.

댓글 없음:

댓글 쓰기