OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 139|回复: 3

移位操作问题

[复制链接]

11

主题

114

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1128
金钱
1128
注册时间
2021-6-17
在线时间
206 小时
发表于 2025-1-24 09:24:15 来自手机 | 显示全部楼层 |阅读模式
int8_t test1,tets2=0;
u16 test3=0;
test1=0X34;test2=0X12;
test3=test2<<8|test1;
test1 =0XA8;test2=0XC7;
test3=test2<<8|test1;
调试时发现,第一次test3=0X1234,第二次test3=0XFFA8,想不明白为什么第二次左移,test3的值为什么不是0XC7A8。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

12

主题

3343

帖子

1

精华

论坛元老

Rank: 8Rank: 8

积分
8459
金钱
8459
注册时间
2020-5-11
在线时间
3901 小时
发表于 2025-1-24 09:44:13 | 显示全部楼层
int8_t 是有符号数对吧,test1 =0XA8是个负数,当它转为16位数时高8位就自动填充了0xFF,成了0xFFA8。
例如:
8位的-1=0xFF;
16位的-1=0xFFFF;
专治疑难杂症
回复 支持 1 反对 0

使用道具 举报

0

主题

67

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
438
金钱
438
注册时间
2020-5-26
在线时间
108 小时
发表于 2025-1-24 09:47:38 | 显示全部楼层
你将int8_t 换成unsigned char 试下
回复 支持 反对

使用道具 举报

11

主题

114

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1128
金钱
1128
注册时间
2021-6-17
在线时间
206 小时
 楼主| 发表于 2025-1-24 11:15:14 来自手机 | 显示全部楼层
LcwSwust 发表于 2025-1-24 09:44
int8_t 是有符号数对吧,test1 =0XA8是个负数,当它转为16位数时高8位就自动填充了0xFF,成了0xFFA8。
例 ...

确实是
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-22 16:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表