无符号整数的表示和运算

本文详细解释了无符号整数在二进制中的表示方式,包括全数值位、表示范围以及加减运算原理,特别提到如何处理溢出情况。通过实例演示了99-9的计算过程。
摘要由CSDN通过智能技术生成

前面的博客讲解了有符号整数的表示和运算,这篇文章来学习无符号整数是如何表示和运算的

无符号整数就是我们说的自然数就是0,1,2,3,4这些。在语言我们看到的unsigned short,unsigned int类型就是无符号整数,前面的unsigned表示是无符号的,后面的short,int表示这个整型类型占多少字节。

如何表示?

还是以机器字长为8位的机器来讲解。

真值表示的二进制数放到寄存器中,如果位置不够就补全,如果数字太长超过了寄存器所能存储的最大位数就会发生溢出,只保留低位的8位

1. 全部二进制位都是数值位,没有符号位,第i位的位权是2的i次方-1

2.机械字长位n或者说n bit 的无符号整数可以表示的范围是0到2的n次方-1(因为第n位的位权是2的n次方-1,全部位置都是1就是最大值,如果在加上1就是2的n次方,但是至多只有n位,所以最大值就是2的n次方-1)超过范围就溢出,意味着计算机不能处理这么多。

3.可以表示最小的数是全为0(真值就为0),最大的数就是全为1(真值就为2的n次方-1)

 加法运算

就很简单就是从最低位开始,按位相加,向更高位进位。和我们熟悉的十进制加法一样,不同的是二进制只有0和1,逢2进1

减法运算 

 1.“被减数”不变,“减数全部位按位取反、末位+1,减法转换为加法。

2.最低位开始按位相加,向高位进位

比如真值为99和9的两个数,二进制数表示为01100011和00001001。99-9=90;

把真值为0表示的二进制数00001001先变形(全部位按位取反、末位+1,减法转换为加法)为11110111,之后再相加

 

变形

 相加之后的结果,高位溢出。

 如果本文章对你有帮助的话还请点赞收藏转发哦~

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值