你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

知道 补码,如何 计算 原码 ?

[复制链接]
myfocus-2048857 提问时间:2016-11-28 11:44 /
本帖最后由 myfocus-2048857 于 2016-11-28 11:47 编辑

ADS1220给出的转换结果是 补码形式,为了 计算 输入的模拟量大小,需要 转换为原码。

请教:
知道 补码,如何 计算 原码 ?

如 补码为0x80 0000h,原码如何计算 ?
我的思路是:用原码 转 补码 的逆运算(减1,然后 再各位取反)。
按照上面的思路 计算:
0x80 0000H的原码为:0000 0000 0000 0000 0000 0000;
0xFF FFFFH的原码为:1000 0000 0000 0000 0000 0001.

不知道 是否 正确,还请大侠指点 !
非常感谢!



收藏 1 评论7 发布时间:2016-11-28 11:44

举报

7个回答
zhoupxa 最优答案 回答时间:2016-11-28 14:04:34
本帖最后由 zhoupxa 于 2016-11-28 14:33 编辑

正数原码、补码相同,无需转换;
负数原码可以这么计算:
原码=0-补码=-补码(当然,补码=0-原码=-原码),这里的0取数据字长所能表示的最大正数加1,也就是模值。
其实就是取负,由于自然溢出,和取反加1一个效果。

比如对于8位有符号数来说:
模为256,负数范围从-128到-1。

-1的补码就是0xff(256-1)
-2的补码就是0xfe(256-2)
......
-127的补码就是0x81(256-127)
-128的补码就是0x80(256-128)
同样,知道补码求原码:

0xff的原码就是-1(256-0xff,注意是负数,所有有负号)
0xfe的原码就是-2(256-0xfe,注意是负数,所有有负号)
......
0x81的原码就是-127(256-0x81,注意是负数,所有有负号)
0x80的原码就是-128(256-0x80,注意是负数,所有有负号)

其实这样表示和转换负数原码、补码的根源就在于,负数补码的引入把计算机中的减法运算变成了加法运算(计算机只会加法啊)。
zhoupxa 回答时间:2016-11-28 14:27:11
楼主的减1取反也未尝不可,貌似楼主计算有误。
zhoupxa 回答时间:2016-11-28 14:21:55
本帖最后由 zhoupxa 于 2016-11-28 14:25 编辑

ADS1220的转换结果是24位有符号数,模值为0x100 0000,对于补码表示的负的转换结果X,其数值可以这么计算:
0x100 0000 - X

0x80 0000对应就是:
0x100 0000 - 0x80 0000 = 0x80 0000(这个结果只是数值)
0xff ffff对应就是:
0x100 0000 - 0xff ffff = 0x00 0001(这个结果只是数值)
myfocus-2048857 回答时间:2016-11-28 16:39:35
zhoupxa 发表于 2016-11-28 14:21
ADS1220的转换结果是24位有符号数,模值为0x100 0000,对于补码表示的负的转换结果X,其数值可以这么计算: ...

非常感谢大神的 精彩、耐心、信息...的回复,好激动呀,看您的回帖,就是 一种 享受,如食 干酪一般....

大神的回复,和 ADS1220的datasheet正好印证...

无标题.png
watershade 回答时间:2016-11-28 23:01:17
反码求解的确会把人搞迷。8位机和32位机的补码就一样。当然你的24位也不一样。我们不妨说是N位计算系统,那X 的补码就是2^N - X。
很简单是不是。那么你会问为什么。举一个最简单的例子,(-5) + 5 应该是多少?我们假定系统是8位运算系统。-5怎么表示呐,就是2^8 - 5, 5还是5.两者加起来就是 2^8.因为计算溢出,剩下的结果就是0.同样的举一个随便的例子比如10 + (-100) 计算时候就是100 + (2^8 - 10) = 2^8 + (10-100) = 2^8 - 90 结果就是-90用反码表示。

那通过这种方式就能统一正负数值的计算。
myfocus-2048857 回答时间:2016-12-1 17:14:45
watershade 发表于 2016-11-28 23:01
反码求解的确会把人搞迷。8位机和32位机的补码就一样。当然你的24位也不一样。我们不妨说是N位计算系统,那 ...

谢谢大侠,学习了 !
assssdz 回答时间:2016-12-1 17:59:07

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版