c语言 if(!(a&0x10))是什么意思?
4个回答
展开全部
0x10是十六进制数 转换成十进制是 16
a是一个变量。
和0x10 按位与 运算。
然后取逻辑非。
然后用if判断。
a是一个变量。
和0x10 按位与 运算。
然后取逻辑非。
然后用if判断。
追问
是不是只有a为0时 这个if条件才取真?
追答
不是。 你没明白 按位与 这个操作是怎么回事。
00000000
00010010
比如这两个数按位与
每一位,相同为1 不同为0
结果就是 11101101
结果就是一个非0的数
取逻辑非。结果为0 if就为假
如果a是11101101那么和 00010010按位与。结果就是00000000
去逻辑非。结果是1 if为真。。
所以只有a是 11101101的时候 if才为真
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a&0x10是a与0x10(也就是16)按位取与,
(!(a&0x10))
如果a的第4位(二进制表示)是1,则返回0,否则返回1,即判断a的第4位是否为0.
(!(a&0x10))
如果a的第4位(二进制表示)是1,则返回0,否则返回1,即判断a的第4位是否为0.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
引用regret4hxp2的回答:
0x10是十六进制数 转换成十进制是 16
a是一个变量。
和0x10 按位与 运算。
然后取逻辑非。
然后用if判断。
0x10是十六进制数 转换成十进制是 16
a是一个变量。
和0x10 按位与 运算。
然后取逻辑非。
然后用if判断。
展开全部
说错了吧。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询