C8051F340 左移右移方法

2020-01-12 17:14发布

请教各位,C8051F340,P3原值0xF0,检查bit0 是1还是0,先左移7位,然后右移7位,怎么结果又变成F0了?难道方法不对?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
zouzhichao
1楼-- · 2020-01-12 20:58
 精彩回答 2  元偷偷看……
ajfan
2楼-- · 2020-01-12 21:00
本帖最后由 ajfan 于 2019-11-25 21:39 编辑

楼上什么意思? P3 不是8位的口么?
zouzhichao
3楼-- · 2020-01-13 01:43
0xf0<<7 = 0x3800,整型提升至int
赋值给DI_Status[7]时强制类型转换取低八位,得0x00
0xf0<<7 = 0x3800,整型提升至int
0x3800 >> 7 = 0x00f0,赋值给DI_Status[8]时强制类型转换取低八位,得0xf0
lw2012
4楼-- · 2020-01-13 01:45
本帖最后由 lw2012 于 2019-11-25 22:09 编辑

修改原因 : 2楼是对的。
zouzhichao
5楼-- · 2020-01-13 05:24
ajfan 发表于 2019-11-25 21:37
楼上什么意思? P3 不是8位的口么?

运算中的临时变量会提升数据类型,在最后的赋值阶段再强制类型转换
lxhu
6楼-- · 2020-01-13 10:42
 精彩回答 2  元偷偷看……

一周热门 更多>