二进制补码计算减法

带符号计算

        任意两个二进制数相减可转化为补码相加运算。一般要计算的是两个无符号数的减法,计算前在原码增加符号位,带符号的目的是便于最终转化为十进制时判断正负。符号位在取补码时不变,但计算时参与计算。计算的二进制结果为去除符号位的补码二进制码字,若要最终十进制结果需变为原码。

示例一:十进制数计算

使用补码计算14-21=-7

        理论计算过程如下:

        使用电脑自带的计算器计算结果如下:

        计算结果的二进制表示中,截取低八位是 1111 1001 ,与理论计算结果的补码相同,验证了计算的二进制结果为去除符号位的补码二进制码字。

示例二:二进制数计算

使用补码计算无符号二进制码  1111 1111 - 1000 0001 

        理论计算过程如下:

        使用电脑自带的计算器计算结果如下:

        使用verilog计算验证代码以及计算结果如下:

always @(posedge clk) begin
    out <= 8'b11111111-8'b10000001;
end

无符号计算

        当然,在只需要进行二进制减法运算时无需还原为十进制,也就不需要考虑正负,则无需增加符号位,直接将减数取反加一转化为加法即可得到计算结果。

示例

使用补码计算无符号二进制码  1111 1111 - 1000 0001 

        因此计算结果为 0111 1110。

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值