C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了C中数字的二进制表示大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我遇到了这个代码,用于表示数字的二进制表示.我想知道使用的必要性!!在代码中.
int main() {
    int n,i;
    unsigned flag = 1<<(sizeof(int) * 8 - 1);     

    printf("Input the number\n");
    scanf("%d",&n);     
    for(i=0;i<sizeof(int)*8;i++) {    
            printf("%d",!!(n & flag) );    
            n = n << 1;
    }
    return 0;
}

解决方法

使用的标志只有MSB设置而所有其他位都被清除,所以当你按位时它和数字你可以测试数字中的MSB.

按位和结果有两种结果:

>零 – 表示数字中的数字为0@H_459_11@mSB.
>非零 – 表示数字为1英寸
它的MSB.

现在我们需要一种映射方式

Non-zero -> 1
Zero -> 0

所以我们使用双重否定.

可以使用以下方法完成同样的事情:

for(i=0;i<sizeof(int)*8;i++) {

    (n & flag) ? printf("1"):printf("0");
    n = n << 1;
}

大佬总结

以上是大佬教程为你收集整理的C中数字的二进制表示全部内容,希望文章能够帮你解决C中数字的二进制表示所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。