【408笔记】计算机组成原理第二章 数据的表示和运算

文章目录

  • 2.1 数制和数码
    • 2.1.1 进位计数制及其相互转换
      • 进位计数法
      • 不同进制数的相互转换
        • 二进制转换为八进制和十六进制
        • 任意进制数转换为十进制数
        • 十进制转换为任意进制数
      • 真值和机器数
    • 2.1.2 BCD码(大纲已删除
    • 2.1.3 定点数的编码表示
      • 机器数的定点表示
      • 原码、补码、反码和移码
        • 原码表示法
        • 补码表示法
        • 变形补码
        • 反码表示法
        • 移码表示法
    • 2.1.4 整数的表示
      • 1. 无符号整数的表示
      • 2. 带符号整数的表示
  • 2.2 运算方法和运算电路
    • 2.2.1 基本运算部件
      • 算术逻辑单元
      • 一位全加器
      • 串行加法器
      • 并行加法器
    • 2.2.2 定点数的移位运算
      • 1. 算数移位
      • 2. 逻辑移位
      • 3. 循环移位
    • 2.2.3 定点数的加减法运算
      • 1. 补码的加减法运算
      • 2. 补码加减法运算电路
      • 3. 溢出判别方法
        • 采用一个符号位
        • 采用双符号位
        • 采用一个符号位,根据进位情况判断
    • 2.2.4 定点数的乘除运算 *
      • 1. 定点数的乘法运算
        • 原码一位乘法
        • 补码一位乘法(booth算法
      • 2. 定点数的除法运算
        • 符号扩展
        • 原码除法(不恢复余数法
        • 补码除法运算
    • 2.2.5 C语言中的整数类型以及类型转换
      • 1. 有符号数和无符号数的转换
      • 2. 不同字长整数之间的转换
    • 2.2.6 数据的存储和排列
      • 1. 数据的大端和小端存储
      • 2. 数据按照边界对齐方式存储
  • 2.3 浮点数的表示和运算
    • 2.3.1 浮点数的表示格式
      • 1. 浮点数的表示格式
      • 2. 浮点数的表示范围
      • 3. 浮点数的规格化
      • 4. IEEE 754 标准
      • 5. 定点表示和浮点表示的区别
    • 2.3.2 浮点数的加减运算
  • 408真题

2.1 数制和数码

2.1.1 进位计数制及其相互转换

计算机内部所有信息都用二进制进行编码,原因在于:

  1. 二进制只有两种状态,使用具有两个稳定状态的物理器件就可以表示二进制数的每一位,制造成本低
  2. 二进制位1和0正好和逻辑“真”和“假”对应,为计算机实现逻辑运算和程序中的逻辑判断提供便利
  3. 二进制编码和运算规则简单,通过逻辑门电路能方便地实现算术运算

进位计数法

常用十进制、二进制、八进制、十六进制
基数:每个数位用到不同数码个数称。例如十进制的基数为10
位权
一个 r r r进制数 K n K n − 1 K n − 2 . . . K 0 K − 1 . . . K − m K_nK_{n-1}K_{n-2}...K_0K_{-1}...K_{-m} KnKn1Kn2...K0K1...Km的数值可以表示为
K n ∗ r n + K n − 1 ∗ r n − 1 + K n − 2 ∗ r n − 2 + . . . + K − m ∗ r − m = Σ i = n − m K i ∗ r i K_n*r^n+K_{n-1}*r^{n-1}+K_{n-2}*r^{n-2}+...+K_{-m}*r^{-m}=\Sigma_{i=n}^{-m}K_i*r^i Knrn+Kn1rn1+Kn2rn2+...+Kmrm=Σi=nmKiri
r r r为基数, r i r^i ri为第 i i i位的位权

2 16 = 65536 2^{16}=65536 216=65536
2 15 = 32768 2^{15}=32768 215=32768

不同进制数的相互转换

二进制转换为八进制和十六进制

一位八进制对应三位二进制
一位十六进制对应四位二进制

1111000010.01101 转换为八进制和十六进制

00)11_1100_0010.0110_1(000 -> 3C2.68

00)1_111_000_010.011_01(0 -> 1702.32
任意进制数转换为十进制数

各位数码和他们的权值相乘,再把乘积相加,即可得到十进制数——按权展开相加

0b11011.1 = 16+8+2+1+0.5 = 27.5
十进制转换为任意进制数
  1. 对于整数,采用除基取余法,结果倒着写
  2. 对于小数,采用乘基取整法,结果正着写
123.6875转换为二进制数

整数部分123:
2|__123...1
2|___61...1
2|___30...0
2|___15...1
2|____7...1
2|____3...1
2|____1...1
      0
123 = 0b1111011

小数部分0.6875:
0.6875
*    2
______
1.3750			1
0.375
*   2
_____
0.75			0
*  2 
____
1.5				1
0.5
* 2
___
1				1
0
0.6875 = 0b0.1011

综上123.6875 = 0b1111011.1011

小数是离散的,并不是每个十进制数都可以准确地用二进制数表示,但每个二进制小数都可以用十进制表示

真值和机器数

真值是机器数所代表的实际值

2.1.2 BCD码(大纲已删除

四位二进制数表示一位十进制数。4位二进制可组合成16种情况,因此有6种冗余

  1. 8421码:有权码,位权分别为8 4 2 1。两个8421码相加结果大于1001,需要加6修正
  2. 2421码,有权码,位权分别为2 4 2 1。大于等于5的数最高位为1;小于5的数最高位为0(5的2421码为1011而不是0101
  3. 余3码:无权码,在8421码的基础上加上0011

2.1.3 定点数的编码表示

定点数:小数点的位置固定的数
反之为浮点数

机器数的定点表示

定点表示法用来表示定点小数和定点整数。

  1. 定点小数:纯小数,约定小数点在符号位之后,有效数值部分最高位之前
  2. 定点整数:纯整数,小数点在有效数值部分最低位之后

定点数编码表示法主要有以下四种:原码、补码、反码和移码

原码、补码、反码和移码

原码表示法

机器数最高位表示数的符号,其余各位表示数的绝对值
字长 n + 1 n+1 n+1位的原码小数可以表示的范围是: − ( 1 − 2 − n ) ≤ x ≤ 1 − 2 − n -(1-2^{-n})\leq{x}\leq{1-2^{-n}} (12n)x1

你可能感兴趣的:(计组,其他)