得到结果是多少

[复制链接]
楼主: yszong
手机看帖
扫描二维码
随时随地手机跟帖
jlyuan| | 2018-4-9 16:02 | 显示全部楼层


如果我做编译器,我会把b<<8优化掉。当然了,我这人厚道,我会给你一个警告信息。

使用特权

评论回复
heweibig| | 2018-4-9 16:03 | 显示全部楼层
没的数据类型讨论没的意义的。

使用特权

评论回复
wyjie| | 2018-4-9 16:06 | 显示全部楼层
这么简单的问题呀,用C程序验证一下不就知道了。

使用特权

评论回复
zhenykun| | 2018-4-9 16:09 | 显示全部楼层
<<不是循环左移,在c语言里面没有循环左移符号吧

使用特权

评论回复
zhanghqi| | 2018-4-9 16:12 | 显示全部楼层

前边的那种说法也不对吧,   |是位或运算,所以应该计算结果,如果是||逻辑运算才不会计算结果.

使用特权

评论回复
jiajs| | 2018-4-9 16:14 | 显示全部楼层

b左移8位为0,a|0 = 1;
《为左移,  |为按位或!!

使用特权

评论回复
huangchui| | 2018-4-9 16:14 | 显示全部楼层
b << 8结果是0,不论b的值是多少。

使用特权

评论回复
zhaoxqi| | 2018-4-9 16:17 | 显示全部楼层

这个有什么疑问的或运算,只要a是1,其结果都是1

使用特权

评论回复
午夜粪车| | 2018-4-9 16:20 | 显示全部楼层
对呀,1与任何值或运算都会得到1.我不懂的是MCU里面总是出现1<<x运算,为什么。

使用特权

评论回复
liliang9554| | 2018-4-9 16:23 | 显示全部楼层

为了将你的寄存器的第x位置一啊,一般都是设置寄存器时用.

使用特权

评论回复
huangchui| | 2018-4-9 16:27 | 显示全部楼层
如果是赋值,还要看被赋值的 数据类型,比如 char c = (a | (b << 8)); 和 int c = (a | (b << 8));  结果是不一样的

使用特权

评论回复
yszong|  楼主 | 2018-4-9 16:29 | 显示全部楼层
嗯,知道啦

使用特权

评论回复
51xlf| | 2018-4-9 20:58 | 显示全部楼层
这个是位或(|)。

使用特权

评论回复
i1mcu| | 2018-4-9 20:59 | 显示全部楼层
结果就是0x81

使用特权

评论回复
updownq| | 2018-4-9 20:59 | 显示全部楼层
heweibig 发表于 2018-4-9 11:11
a是1的话就不会执行b

这个不是运算条件。

使用特权

评论回复
sanfuzi| | 2018-4-9 21:00 | 显示全部楼层
楼主需要计算什么功能?

使用特权

评论回复
pmp| | 2018-4-9 21:04 | 显示全部楼层
超出了运算范围了。

使用特权

评论回复
mmbs| | 2018-4-9 21:04 | 显示全部楼层
如果不是类型限制,就是=257。

使用特权

评论回复
1988020566| | 2018-4-9 21:04 | 显示全部楼层
(b << 8)=0;

使用特权

评论回复
lzbf| | 2018-4-9 21:05 | 显示全部楼层
a | (b << 8)=1

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则