c语言中显示无符号整型数据在计算机存储中二进制位的具体数值

 

001、

c语言中显示无符号整型数据在计算机存储中二进制位的具体数值

[root@PC1 test2]# cat test.c
#include <stdio.h>

int bits_count(unsigned x)        // 定义函数, 输出二进制位上为1的位数
{
        int bits;
        bits = 0;
        while(x)
        {
                if(x & 1U)
                {
                        bits++;
                }
                x >>= 1;
        }
        return bits++;
}

int length_unint(void)                 // 输出无符号整型的位数
{
        return bits_count(~0U);
}

void show_every_bits(unsigned x)        // 定义函数,输出无符号整数所有的二进制位数值
{
        int i;
        for(i = (length_unint() - 1); i >= 0; i--)
        {
                putchar(((x >> i & 1U) ? '1':'0'));
        }
}

int main(void)
{
        int a, b, c;
        a = 1; b = 3; c = 7;        // 三个测试数字
        show_every_bits(a);
        putchar('\n');
        show_every_bits(b);
        putchar('\n');
        show_every_bits(c);
        putchar('\n');

        return 0;
}

[root@PC1 test2]# ls
test.c
[root@PC1 test2]# gcc test.c -o kkk        ## 编译,运算测试
[root@PC1 test2]# ls
kkk  test.c
[root@PC1 test2]# ./kkk
00000000000000000000000000000001
00000000000000000000000000000011
00000000000000000000000000000111

 

 

posted @ 2025-01-03 11:41  小鲨鱼2018  阅读(15)  评论(0)    收藏  举报