这个得到结果是多少

[复制链接]
2033|36
jlyuan 发表于 2018-3-16 17:52 | 显示全部楼层
a=1  b=0
wyjie 发表于 2018-3-16 17:56 | 显示全部楼层
如果我做编译器,我会把b<<8优化掉。当然了,我这人厚道,我会给你一个警告信息。
zhenykun 发表于 2018-3-16 17:58 | 显示全部楼层

没的数据类型讨论没的意义的。
zhanghqi 发表于 2018-3-16 18:00 | 显示全部楼层

这么简单的问题呀,用C程序验证一下不就知道了。
jiajs 发表于 2018-3-16 18:06 | 显示全部楼层
<<不是循环左移,在c语言里面没有循环左移符号吧
huangchui 发表于 2018-3-16 18:08 | 显示全部楼层

前边的那种说法也不对吧,   |是位或运算,所以应该计算结果,如果是||逻辑运算才不会计算结果.
zhaoxqi 发表于 2018-3-16 18:11 | 显示全部楼层
b<<8 = 0
午夜粪车 发表于 2018-3-16 18:18 | 显示全部楼层


b左移8位为0,a|0 = 1;
《为左移,  |为按位或!!
liliang9554 发表于 2018-3-16 18:25 | 显示全部楼层
b << 8结果是0,不论b的值是多少。
spark周 发表于 2018-3-16 18:27 | 显示全部楼层

那是“位”或,b<<8是要执行的。
jiaxw 发表于 2018-3-16 18:29 | 显示全部楼层

这个有什么疑问的或运算,只要a是1,其结果都是1
shimx 发表于 2018-3-16 18:31 | 显示全部楼层
对呀,1与任何值或运算都会得到1.我不懂的是MCU里面总是出现1<<x运算,为什么。
jiahy 发表于 2018-3-16 18:35 | 显示全部楼层
为了将你的寄存器的第x位置一啊,一般都是设置寄存器时用.
zhaoxqi 发表于 2018-3-16 18:37 | 显示全部楼层

二进制的为10000001的吧
zhanghqi 发表于 2018-3-16 18:40 | 显示全部楼层
逻辑或不是按位或,a=1,所以永远都是1
jlyuan 发表于 2018-3-16 18:43 | 显示全部楼层

结果是1 吧。
 楼主| yszong 发表于 2018-3-16 18:47 | 显示全部楼层

结贴了,多谢大家讨论这么多哈,呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部
0