永发信息网

c语言 if(!(a&0x10))是什么意思?

答案:4  悬赏:20  手机版
解决时间 2021-11-29 05:00
  • 提问者网友:蓝琪梦莎
  • 2021-11-28 20:44
c语言 if(!(a&0x10))是什么意思?
最佳答案
  • 五星知识达人网友:撞了怀
  • 2021-11-28 20:53
0x10是十六进制数 转换成十进制是 16

a是一个变量。
和0x10 按位与 运算。

然后取逻辑非。

然后用if判断。追问是不是只有a为0时 这个if条件才取真?追答不是。 你没明白 按位与 这个操作是怎么回事。

00000000
00010010
比如这两个数按位与
每一位,相同为1 不同为0
结果就是 11101101
结果就是一个非0的数
取逻辑非。结果为0 if就为假
如果a是11101101那么和 00010010按位与。结果就是00000000
去逻辑非。结果是1 if为真。。

所以只有a是 11101101的时候 if才为真
全部回答
  • 1楼网友:孤老序
  • 2021-11-28 23:04
引用regret4hxp2的回答:
0x10是十六进制数 转换成十进制是 16

a是一个变量。
和0x10 按位与 运算。

然后取逻辑非。

然后用if判断。说错了吧。。。
  • 2楼网友:雪起风沙痕
  • 2021-11-28 22:10
0x10的2进制表示是 0001 0000,当a与其进行按为与运算为0是if条件为真,也就是 a的值的二进制表示的第5为要为0,例如a = 4,4的2进制表示为0000 0100,就满足这个条件。
  • 3楼网友:时间的尘埃
  • 2021-11-28 21:22
a&0x10是a与0x10(也就是16)按位取与,
(!(a&0x10))
如果a的第4位(二进制表示)是1,则返回0,否则返回1,即判断a的第4位是否为0.
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯