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값으로 변환시키는 부분이다.
댓글 없음:
댓글 쓰기