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

 我来答
_KQL_
2012-04-28 · 超过59用户采纳过TA的回答
知道小有建树答主
回答量:139
采纳率:0%
帮助的人:145万
展开全部
0x10的2进制表示是 0001 0000,当a与其进行按为与运算为0是if条件为真,也就是 a的值的二进制表示的第5为要为0,例如a = 4,4的2进制表示为0000 0100,就满足这个条件。
regret4hxp2
2012-04-28 · TA获得超过682个赞
知道小有建树答主
回答量:479
采纳率:100%
帮助的人:248万
展开全部
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才为真
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ghnjk
2012-04-28 · TA获得超过106个赞
知道小有建树答主
回答量:95
采纳率:0%
帮助的人:120万
展开全部
a&0x10是a与0x10(也就是16)按位取与,
(!(a&0x10))
如果a的第4位(二进制表示)是1,则返回0,否则返回1,即判断a的第4位是否为0.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
伴栏筷封
2018-03-21
知道答主
回答量:1
采纳率:0%
帮助的人:889
引用regret4hxp2的回答:
0x10是十六进制数 转换成十进制是 16

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

然后取逻辑非。

然后用if判断。
展开全部
说错了吧。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式