[51单片机]

8位值可以给16位变量赋值么?

[复制链接]
2474|13
手机看帖
扫描二维码
随时随地手机跟帖
R2D2| | 2019-8-31 09:00 | 显示全部楼层
大姐,你随便找个编译器仿真一下不就可以知道了吗???

使用特权

评论回复
Prry| | 2019-8-31 09:35 | 显示全部楼层
T=0x0001

使用特权

评论回复
R2D2| | 2019-8-31 11:23 | 显示全部楼层
QQ图片20190831112243.png
QQ图片20190831112237.png

使用特权

评论回复
tianxj01| | 2019-8-31 11:29 | 显示全部楼层
8位和16位可以互相赋值,这个没有问题。
如果是8位数赋值16位,则16位的也只等于8位的数。
如果是16位数赋值8位数,则8位数值等于16位数值的低8位,也就是高位直接舍去。

使用特权

评论回复
评论
R2D2 2019-8-31 13:20 回复TA
菜鸟你不知道8位赋值给16位有符号位扩展的问题吧? 
R2D2| | 2019-9-1 12:11 | 显示全部楼层
QQ图片20190901121038.png

使用特权

评论回复
Cjy_JDxy| | 2019-9-1 13:12 | 显示全部楼层

朴昌范真是个大神,软硬通吃。

使用特权

评论回复
airwill| | 2019-9-1 18:56 | 显示全部楼层
编译器会自动扩展适应数据类型.  如果 16 位赋值给 8 位, 会复杂些

使用特权

评论回复
ly1972001| | 2019-9-2 13:40 | 显示全部楼层
还要看具体用的哪种单片机和编译器,有些编译器蛮反人类的。

使用特权

评论回复
gx_huang| | 2019-9-2 13:49 | 显示全部楼层
ly1972001 发表于 2019-9-2 13:40
还要看具体用的哪种单片机和编译器,有些编译器蛮反人类的。

没见过哪个C编译器反人类的。

使用特权

评论回复
七颗咖啡豆| | 2019-9-2 15:46 | 显示全部楼层
这个要从汇编角度来看,汇编没有U16 U8这一说,数据搬移基本就是 寄存器到寄存器、  寄存器到存储单元  、存储单元到寄存器 、 存储单元到存储单元。

使用特权

评论回复
eddy2019| | 2019-9-2 20:41 | 显示全部楼层
R2D2 发表于 2019-8-31 09:00
大姐,你随便找个编译器仿真一下不就可以知道了吗???

大姐

使用特权

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

本版积分规则

6

主题

10

帖子

0

粉丝