c语言 if(!(a&0x10))是什么意思?
意法半导体(中国)投资有限公司
2023-06-12 广告
2023-06-12 广告
单片机,单片微型计算机。它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/O)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。单片机具有性能高、速度快、体积小、价格低、稳定可靠、应用...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
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判断。
展开全部
说错了吧。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询