怎么用C语言获取某一位的值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用C语言获取某一位的值相关的知识,希望对你有一定的参考价值。
参考技术A int d,x,n;scanf("%d%d",&x);
n=(x & (1<<d))>0;
printf("%d的第%d位是%d\n",x,d,n); 参考技术B 例:取变量a第四位
a = a & (0x01<<4); 参考技术C c语言中如何提取二进制数中的某一位?
有奖励写回答共6个回答
檀香透窗棂
TA获得超过4.7万个赞
聊聊关注成为第462位粉丝
下面是三种方式:
①通过模2除2(%2、/2)的方法
num%2——取出二进制的最后一位
num/2——右移去掉二进制的最后一位
通过while循环,依次取出二进制的最后一位数字判断是否为1,若为1则count++,while(num)只有当num变为0时循环结束。
问题:在测试-1出现bug,-1的二进制中应该有32个1,输出却为0。我们将-1带入代码中发现-1%2=0,count不增,然后-1/2=0,循环结束,故输出count的值为0。
以上是关于怎么用C语言获取某一位的值的主要内容,如果未能解决你的问题,请参考以下文章