C언어에서 공식적으로 2진수 표현 방법을 지원하지 않아서 직접 만들었다.
void print_int_to_bin 함수는 unsigned int를 인자로 받아 그것을 2진수 형태로 변환해서, 8자리마다 한 칸씩 띄워서 출력한다.
#include <stdio.h>
void print_char_to_bin(unsigned char ch)
{
int a;
_Bool b;
for (a = 0; a < 8; a++) {
b = (ch & 1 << 8 - a - 1)? 1 : 0;
printf("%d", b);
}
}
void print_int_to_bin(unsigned int i)
{
unsigned char int8;
int len = sizeof(int);
int a;
printf("in bin: ");
for(a = 0; a < len; a++)
{
int8 = i >> (len - a - 1) * 8 & 0xFF;
print_char_to_bin(int8);
printf(" ");
}
printf("\n");
}
int main(void)
{
print_int_to_bin(0xffffffff);
return 0;
}