无符号数减法最强解释

在计算机内部,无符号数的加减法等同于补码进行加减法,只是最后对于结果的解释不一样

举个栗子

// 情形一
unsigned A, B;
A = 0;
B = 1;
A - B;

则A-B进行的其实是[A]补+[-B]补,就是[0]补 + [-1]补 = 00000000H + FFFFFFFFH = FFFFFFFFH

只不过最后的结果是按照无符号数来解释,那么最后的结果就是FFFFFFFFH

但如果是下面的这样

// 情形二
int A, B;
A = 0;
B = 1;
A - B;

A-B = [A]补+[-B]补,就是[0]补 + [-1]补 = 00000000H + FFFFFFFFH = FFFFFFFFH

结果仍然为FFFFFFFFH

但是由于A、B是int型,这时候就是按照有符号数来理解,结果就是-1(真值)

综上所述

在计算机内部,无符号整数和其它类型一样,统一都是按照补码加减法规则计算(毕竟所有的数都是按照补码存放的),而唯一不同的是,对最后的结果的解释方式不同

一言以蔽之——过程大家一样,都是补码加减法规则,但是计算出来的结果的解释方式不同

  • 26
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值