[MCU] 结果是多少

[复制链接]
2151|54
jlyuan 发表于 2020-5-20 22:00 | 显示全部楼层
如果我做编译器,我会把b<<8优化掉。当然了,我这人厚道,我会给你一个警告信息。
heweibig 发表于 2020-5-20 22:04 | 显示全部楼层
没的数据类型讨论没的意义的。
wangzsa 发表于 2020-5-20 22:07 | 显示全部楼层
这么简单的问题呀,用C程序验证一下不就知道了。
zhenykun 发表于 2020-5-20 22:11 | 显示全部楼层
<<不是循环左移,在c语言里面没有循环左移符号吧
zhanghqi 发表于 2020-5-20 22:15 | 显示全部楼层
前边的那种说法也不对吧,   |是位或运算,所以应该计算结果,如果是||逻辑运算才不会计算结果.
jiajs 发表于 2020-5-20 22:18 | 显示全部楼层

b左移8位为0,a|0 = 1;
《为左移,  |为按位或!!
huangchui 发表于 2020-5-20 22:22 | 显示全部楼层

b << 8结果是0,不论b的值是多少。
zhaoxqi 发表于 2020-5-20 22:26 | 显示全部楼层
这个有什么疑问的或运算,只要a是1,其结果都是1
午夜粪车 发表于 2020-5-20 22:31 | 显示全部楼层
对呀,1与任何值或运算都会得到1.我不懂的是MCU里面总是出现1<<x运算,为什么。
liliang9554 发表于 2020-5-20 22:35 | 显示全部楼层
为了将你的寄存器的第x位置一啊,一般都是设置寄存器时用.
huangchui 发表于 2020-5-20 22:39 | 显示全部楼层
如果是赋值,还要看被赋值的 数据类型,比如 char c = (a | (b << 8)); 和 int c = (a | (b << 8));  结果是不一样的
 楼主| yszong 发表于 2020-5-20 22:42 | 显示全部楼层
嗯,知道啦
morrisk 发表于 2020-5-20 22:45 | 显示全部楼层
这个是位或(|)。
xxmmi 发表于 2020-5-20 22:48 | 显示全部楼层
结果就是0x81
guoyt 发表于 2020-5-20 22:53 | 显示全部楼层
这个不是运算条件。
wangpe 发表于 2020-5-20 22:57 | 显示全部楼层

楼主需要计算什么功能?
wangzsa 发表于 2020-5-20 23:03 | 显示全部楼层

超出了运算范围了。
huanghuac 发表于 2020-5-20 23:06 | 显示全部楼层
如果不是类型限制,就是=257。
zhuhuis 发表于 2020-5-20 23:08 | 显示全部楼层
(b << 8)=0;
songqian17 发表于 2020-5-20 23:11 | 显示全部楼层
a | (b << 8)=1
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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