有符号补码的加减法以及大小比较

本文详细介绍了有符号补码的加减法运算,并探讨了补码表示的范围和溢出处理。通过4位有符号数的例子,解释了补码加减法的正确性和在Verilog中进行大小比较的方法。文章还讨论了补码转原码的特殊情况,以及在FPGA设计中如何处理符号位扩展。
摘要由CSDN通过智能技术生成

有符号补码的加减法以及大小比较

1.瞎扯简述

 最近在写用fpga进行解缠绕的IP,解缠绕做的事情并不算复杂,就是比较后进行加减而已。但是解缠绕前面这个IP是用的xilinx的Cordic内核,算出来的是补码,过去只做了一些什么简单的取反加一的简单原码补码转换,所以在这里加减就懵了,没有真正碰过补码运算,正好借此机会好好整明白补码的操作。

2.原码与补码的转换

 什么是有符号原码,补码怎么转换的,百度即可,耐心看5分钟就整明白了。

3.表示范围

 对于8位有符号数的来讲,原码很容易理解,表示范围是-127-127。但是计算机不采用原码存储,采用补码,+0和-0的补码都是0000 0000,当时最令我疑问的1000 0000为什么表示-128,对1000 0000的符号位不变,数值位取反加一,就变成了1 0000 0000,就算我人为规定了1 0000 0000这个就是-128的补码,但是计算机怎么识别呢,毕竟这是个9位数据。
其实,还是自己低估了补码的意义。
 我们就来看看把1000 0000作为-128的补码能不能参与运算,为了方便大家验证,我们下面不以
8位有符号数来验证,以4位有符号数验证。4位有符号数是从-8-7,1000就是-8的补码。
举个例子,-8+6=1000+0110=1110 1110的原码是1010=-2 正确 ,1000作为-8的补码参与运算是完全正确的

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值