计算机组成原理 -定点数与运算

定点数与浮点数

  • 定点数
    • 定点数的表示
      • 无符号数 : 没有符号位,全是数值位
      • 有符号数 (原码,补码,反码,移码)
        • 移码 : 在无符号数的基础上增加一个偏移值
    • 定点数的运算 : 小数是怎么存放的呢?
      • 移位运算
      • 加减运算
        • 溢出判断
          • 方法一: 一位符号位判断
          • 一位符号位+数据位进位
          • 双符号位 - 本质是模4补码 ⭐
      • 乘除
      • 强制类型转换

计算机组成原理 -定点数与运算_第1张图片

定点数

定点数的表示

无符号数 : 没有符号位,全是数值位

计算机组成原理 -定点数与运算_第2张图片

有符号数 (原码,补码,反码,移码)

机器数 : 实际运算都是有符号数
在这里插入图片描述正负值变成原码(机器数) , +换成0 ,- 换成1
计算机组成原理 -定点数与运算_第3张图片 原码缺点 :有符号数相加很麻烦,
需要引入减法,但是我们只有一个加法器
计算机组成原理 -定点数与运算_第4张图片- 怎么才能只用一个加法,实现有符号数的相加呢 – 补码的概念!
有符号数是存在周期的概念的,这个周期就是模 ,取反+1的本质是 加上周期后的结果 和取反+1的结果是一样的

  • 原码变到补码 : 负数符号位不变,数值位取反+1
    ∴补码是用来运算的 , 补码的运算结果 == 原码有符号数复杂的运算结果

  • 补码到他的相反数 : 连着符号位取反+1

计算机组成原理 -定点数与运算_第5张图片
根据补码的表,我们就可以得到计算机内部使用的都是补码 +127 ~ -128
计算机组成原理 -定点数与运算_第6张图片

移码 : 在无符号数的基础上增加一个偏移值

使得大小变得更加直观

计算机组成原理 -定点数与运算_第7张图片


定点数的运算 : 小数是怎么存放的呢?

定点: 默认位置是小数点(隐含条件)
根据定点位置不同分为 定点小数 定点整数

移位运算

  • 进制数:
    左移相当于×进制数,移几位就乘几次进制数 (进制数^n)

  • 原码的移位运算
    有符号数的移位:算术移位
    符号位不移动,数值位移动,舍弃溢出的(会造成大小巨大改变)

无符号数的移位 是补零,舍弃溢出的

计算机组成原理 -定点数与运算_第8张图片

  • 补码和反码
    当是整数的时候 都补0
    当时负数的时候
    补码高位补1,低位补0
    反码都补1
    计算机组成原理 -定点数与运算_第9张图片

加减运算

  • 原码的加减:
    在这里插入图片描述
    -15 + 14 = - |15-14|
    由于原码的运算比较复杂,所以我们都是用补码进行运算的

  • 补码的加减法
    补码的加减法不需要考虑符号位,
    计算机组成原理 -定点数与运算_第10张图片

如果补码是负数 : 快捷方法根据补码得到原码 :
最右边的1为边界,1左边的全部取反,符号位保持不变就得到了原码

溢出判断

8位数能表达的范围只有-128 ~ 127 (其中一位是符号位 2^7 = 128)
计算机组成原理 -定点数与运算_第11张图片

计算机组成原理 -定点数与运算_第12张图片

方法一: 一位符号位判断

计算机组成原理 -定点数与运算_第13张图片

一位符号位+数据位进位

数据位最高位向符号位进位 : C1
符号位向更高位进位 : Cs
只要C1和Cs不同,则一定溢出
计算机组成原理 -定点数与运算_第14张图片

双符号位 - 本质是模4补码 ⭐

双符号位的结果 第一位是本应得到的正确正负,第二位是实际得到的正负
计算机组成原理 -定点数与运算_第15张图片


乘除

强制类型转换

你可能感兴趣的:(计算机组成原理)