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;
}


+ Recent posts