OpenEdv-开源电子网

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

CAN总线发送负数值

[复制链接]

36

主题

98

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2016-3-26
在线时间
83 小时
发表于 2016-9-10 10:07:54 | 显示全部楼层 |阅读模式
20金钱

CAN总线发送负数值



在不转换为字符串情况下,如何利用CAN总线发送负数数据?

最佳答案

查看完整内容[请看2#楼]

不太清楚你这个问题的难度在哪。我想你所谓的正数实际是无符号数,负数是有符号数的一个子集。看看数据类型源码、反码和补码的定义。有符号数中正数和零最高位为0,最高位为1的就是负数。 你只要定义一个有符号数,赋值为负数,编译系统就会自动把它处理为负数了,把它变为补码,和发送正数(无符号数)没区别。 如: int a; a=-37654896; 你把a发送出去就可以吧,前提是接收到也知道这个数被定义为有符号数了。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

6

主题

305

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2876
金钱
2876
注册时间
2016-7-17
在线时间
404 小时
发表于 2016-9-10 10:07:55 | 显示全部楼层
不太清楚你这个问题的难度在哪。我想你所谓的正数实际是无符号数,负数是有符号数的一个子集。看看数据类型源码、反码和补码的定义。有符号数中正数和零最高位为0,最高位为1的就是负数。
你只要定义一个有符号数,赋值为负数,编译系统就会自动把它处理为负数了,把它变为补码,和发送正数(无符号数)没区别。
如:
int a;
a=-37654896;
你把a发送出去就可以吧,前提是接收到也知道这个数被定义为有符号数了。
回复

使用道具 举报

1

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
163
金钱
163
注册时间
2016-9-12
在线时间
59 小时
发表于 2016-9-12 11:56:13 | 显示全部楼层
单片机本来就可以处理负数,发送的时候加个标志位
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2016-9-13 23:49:20 | 显示全部楼层
转换成字节流发送,什么格式都可以发送!!
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-25 12:48

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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