打印
[FPGA]

二进制补码和数学表达式解惑

[复制链接]
1086|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
XLDZZ|  楼主 | 2016-11-24 20:32 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
如题  在图片中有关于补码的表达式
关于-2n-1次方  我的理解就是最大值 比如7位二进制数 转换成10进制就是-127 转换成二进制原码就是1 1111111
可这里为什么要加上自己本身的原码才能变成补码呢,这点我有些不解。
关于补码运算 我的理解是这样 如果125减去25 等于100常规的做法是这样
如果换成补码加法 就变成125+975(25的补码前数是100所以必须取100的最大值补码)等于1100,前面的进位丢掉就变成了100

但从公式上理解就不对了  哪位高手能给我解释下吗

IMG_20161124_150417.jpg (417.85 KB )

数学表达式

数学表达式

相关帖子

沙发
XLDZZ|  楼主 | 2016-11-25 15:07 | 只看该作者
没人知道吗

使用特权

评论回复
板凳
ar_dong| | 2016-12-3 10:33 | 只看该作者
其实补码要用另外的思路理解,处理器的数据位是8位
那-1加上1应该为0啊,
那8位的什么加上1是0呢,
只有ffh+1h=100h,
由于是8位数前面的1溢出了不就是0么

使用特权

评论回复
地板
lijingxiu| | 2016-12-16 14:19 | 只看该作者
计算机在计算两个数的加减乘时候,其实都是按照无符号数计算的,也就是说没有什么有符号加法指令和无符号加法指令,就一个加法指令,但是比较指令是分有符号和无符号指令的,记住在你声明数据类型时如果是无符号的最高位的加权就是2的(n-1)幂,如果是有符号最高为的加权是负的2的(n-1)幂,其他位的加权都是正的。

使用特权

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

本版积分规则

64

主题

182

帖子

0

粉丝