无符号数和有符号数

无符号数

无符号数:整个机器字长的全部二进制位均为数值位,没有符号位,相当于数的绝对值。
寄存器的位数用来反映无符号数的范围。
image.png

有符号数

原码

🌅 原码的定义:

  • 整数
    image.png
  • 小数
    image.png

🌰 举例:
image.png
image.png
image.png
image.png

反码

🌅 反码的定义:

  • 整数
    image.png
  • 小数
    image.png

image.png

补码

🌅 补码的定义

  • 整数
    image.png
  • 小数
    image.png

image.png
🔔 当真值为 时,原码 可用 补码除符号位外 每位取反,末位加 1 求得
⚠️ 求补码的另一种方法:从原码的最右端开始向左数,数到第一个 1 停止,该位置左边的所以位数(除了符号位)取反。
image.png
1️⃣ 一个负数加上 “模” 即得该负数的补数
2️⃣ 一个正数和一个负数互为补数时,它们绝对值之和即为模数
🌰 举例:
image.png

移码

🌅 移码的定义
image.png
image.png
🔔 最小真值的移码为全 0
image.png

练习

image.png

三种机器数的小结

1️⃣ 最高位为符号位,书写上用“,”(整数)或“.”(小数)将数值部分和符号位隔开
2️⃣ 对于正数,原码 = 补码 = 反码
3️⃣ 对于负数 ,符号位为 1,其数值部分

  • 原码除符号位外每位取反末位加 1 -> 补码。
  • 原码除符号位外每位取反 -> 反码

image.png

  • 原码和反码的真值 0 有两种表示
  • 补码和移码的真值 0 只有一种表示
  • 补码和移码可以多表示一个负数

    数的定点表示和浮点表示

    定点表示

    image.png

    浮点表示

    浮点数的表示形式

    image.png
    image.png

    浮点数的表示范围

    image.png
    image.png

    IEEE 754 标准

    image.png
    image.png
    image.png
    image.png

    定点运算

    移位运算

    🌈 算术移位规则
    image.png
    image.png
    image.png
    🌈 算术移位和逻辑移位的区别
    image.png

    加减法运算

    补码加减运算公式

  • 加法
    image.png

  • 减法
    image.png
  • 连同符号位一起相加,符号位产生的进位自然丢掉

image.png

  • 溢出判断

    • 一位符号位判溢出:参加操作的 两个数(减法时即为被减数和“求补”以后的减数)符号相同,其结果的符号与原操作数的符号不同,即为溢出
    • 两位符号位判溢出:结果的双符号位 相同:未溢出;结果的双符号位 不同:溢出。最高符号位 代表其 真正的符号

      乘法运算

      原码乘法

  • 原码一位乘运算规则
    image.png

image.png
image.png

补码乘法

  • 补码一位乘运算规则
    image.png
  • Booth 算法(被乘数、乘数符号任意)
    image.png
    image.png

    除法运算

    原码除法

    image.png

  • 恢复余数法
    image.png
    image.png

  • 不恢复余数法(加减交替法)
    image.png
    image.png

    补码除法

  • 余数补码与除数补码同号:上商“1”;不同号:上商“0”

  • 末位商恒置“1”

image.png
image.png

补码除和原码除(加减交替法)比较

image.png