【基础学习】C 打印数字的二进制表示

为了研究下数字的位运算,学习研究了下数字的二进制表示。

#include 

#define LEN 120

int main ()
{
    char c;
    int i;
    long int x;
    int a[LEN];

    for (i = 0; i < LEN; i++)
    {
        a[i] = 0;
    }

    printf("Help: Input q to quit.\n");

    while(c != 'q')
    {
        printf("Input the number you want to show: \n");

        scanf("%ld", &x);
        c = getchar();

        if (c == 'q')
        {
            return 0;
        }

        for (i = 0; i < LEN; i++)
        {
            if (x % 2 == 0) 
            {
                a[i] = 0;
            } else {
                a[i] = 1;
            }

            x = x >> 1;
        }

        for (i = LEN - 1; i >= 0; i--) 
        {
            printf("%d", a[i]);
        }

        printf("\n");
    }
}   

主要是声明一个 128 长度的数组,用来存放 0 和 1,之后读取到需要计算的数字,比如 2,再挨个移位,计算其末位是否是 0 还是 1,存储到数组。最后倒序输出。

参考:chinaunix

你可能感兴趣的:(【基础学习】C 打印数字的二进制表示)