2.2定点数的表示与运算

1.定点数的表示

1.1无符号数的表示(只有整数,没有小数)

n位的无符号数表示范围为:0 ~ 2n -1

1.2有符号数的定点表示

1.2.1原码

原码:用尾数表示真值的绝对值,符号位“0/1”对应“正/负”
若机器字长n+1位,原码整数的表示范围: - ( 2n -1) ~ 2n -1

若机器字长n+1位,原码小数的表示范围: - ( 1-2-n ) ~1- 2-n

1.2.2反码

反码:若符号位为0,则反码与原码相同
           若符号位为1,则数值位全部取反
若机器字长n+1位,反码整数的表示范围: - ( 2n -1) ~ 2n -1

若机器字长n+1位,反码小数的表示范围: - ( 1-2-n ) ~1- 2-n

1.2.3补码

补码:正数的补码 = 原码
           负数的补码 = 反码末位+1(要考虑进位)
补码的真值0只有一种表示形式
采用补码表示时,若符号位相同,则数值位越大,码值越大。
★定点整数补码 [x]补 = 1,0000000 表示 x = -27补码中最小的数
若机器字长n+1位,补码整数的表示范围:−2n ≤ x ≤ 2n −1 (比原码多表示一个 −2n )
定点小数补码 [x]补 = 1.0000000 表示 x = -1
若机器字长n+1位,补码小数的表示范围:−1 ≤ x ≤ 1−2-n (比原码多表示一个 −1 )

1.2.4移码(只能表示整数)

补码的基础上将符号位取反
移码全0真值最小,移码全1真值最大;移码表示的整数很方便对比大小

移码的真值0只有一种表示形式
若机器字长n+1位,移码整数的表示范围:−2n ≤ x ≤ 2n −1 (与补码相同)

1.2.5由[x]补求[-x]补

符号位、数值位全部取反,末位+1

1.2.6由[x]补求[x]原

同[x]原求[x]补

1.2.7由[-x]补求[x]原

负数补→原:①数值位取反+1;
                或 ②负数补码中,最右边的1及其右边同原码。最右边的1的左边同反码

2.移位运算

2.1算数移位

符号位保持不变,仅对数值位进行移位。

2.1.1正数

正数的原码、补码与反码都相同,因此移位后出现的空位均以0添之。

2.1.2负数

2.1.2.1原码
2.1.2.2反码

反码的算数移位――负数的反码数值位与原码相反,因此负数反码的移位运算规则如下,
右移:高位补1,低位舍弃。
左移:低位补1,高位舍弃。

2.1.2.3补码

补码的算数移位――负数补码=反码末位+1导致反码最右边几个连续的1都因进位而变为0,直到进位碰到第一个0为止。
规律――负数补码中,最右边的1及其右边同原码。最右边的1的左边同反码
负数补码的算数移位规则如下:
右移(同反码):高位补1,低位舍弃。
左移(同原码):低位补0,高位舍弃。

2.1.3总结

在这里插入图片描述

2.2逻辑移位

逻辑右移:高位补0,低位舍弃。
逻辑左移:低位补0,高位舍弃。

2.3循环移位

在这里插入图片描述

3.加减运算

3.1原码的加减运算

在这里插入图片描述
在这里插入图片描述

3.2补码的加减运算

对于补码来说,无论加法还是减法,最后都会转变成加法,由加法器实现运算,符号位也参与运算补码运算回原码就是我们真正计算的值,当然可能会发生溢出。
在这里插入图片描述

4.溢出判断

在这里插入图片描述
只有“正数+正数 ”才会上溢(正溢出) —— 正+正=负
只有“负数+负数 ”才会下溢(负溢出) —— 负+负=正

4.1一位符号位(模2补码)

在这里插入图片描述

4.2采用一位符号位(模2补码),根据数据位进位情况判断溢出

在这里插入图片描述

4.3双符号位(模4补码)

在这里插入图片描述

4.4符号扩展

在这里插入图片描述

5.强制类型转换

5.1有符号数和无符号数之间的转换。

不改变数据内容,改变解释方式
例如,由, signed型转换为等长unsigned型数据时,符号位成为数据的一部分,即负数转换为无符号数时,数值将发生变化。同理,由unsigned转换为signed 时最高位作为符号位,也可能发生数值变化。
在这里插入图片描述

5.2长整数变短整数

高位截断,保留低位。
在这里插入图片描述

5.3短整数变长整数

符号扩展。见本节4.4

在这里插入图片描述

6.数据的存储和排列

6.1大小端模式

在这里插入图片描述

6.2边界对齐

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值