怎么用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语言获取某一位的值的主要内容,如果未能解决你的问题,请参考以下文章

C语言更改字符串中的某一位

Java怎么使用replace替换字符串中的某一位的字符

Python读字节某一位的值,设置某一位的值,二进制位操作

c语言中如何设置第n位的值

c语言中如何提取二进制数中的某一位?

c语言中,如何取出double类型数的每一位到一个数组?