c语言中a&b什么时候==1

看了个单片机SPI编程,if(add&0x80==1),什么意思啊... 看了个单片机SPI编程,if(add&0x80==1),什么意思啊 展开
 我来答
silvernii
2009-09-13 · TA获得超过3638个赞
知道大有可为答主
回答量:1667
采纳率:0%
帮助的人:1752万
展开全部
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
风若远去何人留
推荐于2016-01-17 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20403 获赞数:450164
专业C/C++软件开发

向TA提问 私信TA
展开全部
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
等等。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
千锋教育
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
检珧0hW
2009-09-13 · 超过23用户采纳过TA的回答
知道答主
回答量:72
采纳率:0%
帮助的人:90.1万
展开全部
0x80的二进制表示为10000000,你的单片机应该是8位单片机,这应该是检测add的最高位是否为1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
L_o_o_n_i_e
2009-09-13 · TA获得超过4.2万个赞
知道大有可为答主
回答量:8507
采纳率:38%
帮助的人:6025万
展开全部
a&b, 只有:
当 a 和b 最低位 同时等于 1,
并且, 其他位不同时等于1,
才 等于1,

add&0x80==1 永不成立.

(add&0x80) >> 7 ==1 -- 最高位等于1 就 成立.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式