无符号数和有符号数
无符号数
无符号数:整个机器字长的全部二进制位均为数值位,没有符号位,相当于数的绝对值。
寄存器的位数用来反映无符号数的范围。
有符号数
原码
🌅 原码的定义:
- 整数
- 小数
反码
🌅 反码的定义:
- 整数
- 小数
补码
🌅 补码的定义
- 整数
- 小数
🔔 当真值为 负 时,原码 可用 补码除符号位外 每位取反,末位加 1 求得
⚠️ 求补码的另一种方法:从原码的最右端开始向左数,数到第一个 1 停止,该位置左边的所以位数(除了符号位)取反。
1️⃣ 一个负数加上 “模” 即得该负数的补数
2️⃣ 一个正数和一个负数互为补数时,它们绝对值之和即为模数
🌰 举例:
移码
练习
三种机器数的小结
1️⃣ 最高位为符号位,书写上用“,”(整数)或“.”(小数)将数值部分和符号位隔开
2️⃣ 对于正数,原码 = 补码 = 反码
3️⃣ 对于负数 ,符号位为 1,其数值部分
- 原码除符号位外每位取反末位加 1 -> 补码。
- 原码除符号位外每位取反 -> 反码
- 原码和反码的真值 0 有两种表示
- 补码和移码的真值 0 只有一种表示
-
数的定点表示和浮点表示
定点表示
浮点表示
浮点数的表示形式
浮点数的表示范围
IEEE 754 标准
定点运算
移位运算
加减法运算
补码加减运算公式
加法
- 减法
- 连同符号位一起相加,符号位产生的进位自然丢掉
溢出判断
原码一位乘运算规则