
展开全部
0x80的二进制是10000000
add&0x80 == 1 也就是add & 0x80 !=0
也就是add的二进制形式的第一位必须是1,不能是0
因为不管add值是多少,假如是0xxxxxxx的话(x可能是0可能1)
那么0xxxxxxx & 10000000 == 0
只有add是1xxxxxxx(x可能是0,可能是1)的时候,1xxxxxxx & 10000000 !=0
&是位与运算,2个操作数的二进制数对应的每一位进行与运算,1&1=1,1&0=0,0&1=0,0&0=0
add&0x80 == 1 也就是add & 0x80 !=0
也就是add的二进制形式的第一位必须是1,不能是0
因为不管add值是多少,假如是0xxxxxxx的话(x可能是0可能1)
那么0xxxxxxx & 10000000 == 0
只有add是1xxxxxxx(x可能是0,可能是1)的时候,1xxxxxxx & 10000000 !=0
&是位与运算,2个操作数的二进制数对应的每一位进行与运算,1&1=1,1&0=0,0&1=0,0&0=0
展开全部
a&b中的&是按位与操作,其规则为,
当a和b对应位上的值均为1时,结果的该位上为1,否则结果该位上为0。
即
1&1=1
1&0=0
0&1=0
0&0=0
所以,a&b结果为1的情况有很多种,只要a和b的最低位均为1,其它位上均不同时为1即可。
如
0x33 & 0x41
或
0xff & 0x01
等等。
当a和b对应位上的值均为1时,结果的该位上为1,否则结果该位上为0。
即
1&1=1
1&0=0
0&1=0
0&0=0
所以,a&b结果为1的情况有很多种,只要a和b的最低位均为1,其它位上均不同时为1即可。
如
0x33 & 0x41
或
0xff & 0x01
等等。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2015-11-30 · 做真实的自己 用良心做教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
关注

展开全部
符号 & 在C语言中是 位与 的意思。所以在 a和b的 二进制形式中,当 a和b最后一位(也就是最低位)都为1,而其他位都不同时为1的情况下,a&b==1。如你说的if(add&0x80==1)
0x80的二进制是 10000000 除第1位高位是1其余全是0.而 只有两个位都是1时 即 1&1=1
,1&0 和 0&0都是0.所以不管add是多少add&0x80都不等1。但是add的最高位为1的话 add&0x80 就不会为0
0x80的二进制是 10000000 除第1位高位是1其余全是0.而 只有两个位都是1时 即 1&1=1
,1&0 和 0&0都是0.所以不管add是多少add&0x80都不等1。但是add的最高位为1的话 add&0x80 就不会为0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
0x80的二进制表示为10000000,你的单片机应该是8位单片机,这应该是检测add的最高位是否为1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a&b, 只有:
当 a 和b 最低位 同时等于 1,
并且, 其他位不同时等于1,
才 等于1,
add&0x80==1 永不成立.
(add&0x80) >> 7 ==1 -- 最高位等于1 就 成立.
当 a 和b 最低位 同时等于 1,
并且, 其他位不同时等于1,
才 等于1,
add&0x80==1 永不成立.
(add&0x80) >> 7 ==1 -- 最高位等于1 就 成立.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询