【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示

2.1 无符号数和有符号数

2.1.1 无符号数

没有符号的数,其实就是非负数。在计算机中用字节码表示,目前最常用的是八位和十六位的。

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第1张图片

2.1.2 有符号数

将正负符号数字化,0代表 + ,1代表 - ,并把代表符号的数字放在有效数字前,就组成了有符号数。

1. 机器数和真值

我们接下来要用到的真值都指的是带符号的二进制数

机器数是相对于真值而言的,下面要讲的原码、补码、反码和移码都属于机器数。

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第2张图片

2. 原码表示法

原码,顾名思义,是机器数最原本的表示方法,原码包括两个部分,符号位和数值位,符号位用0和1代表这个数的正负,数值位就是真值的绝对值。

为了区别用原码表示的整数和小数,整数的符号位和数值位用逗号隔开,小数的则用小数点隔开。

原码的优点:表示简单,易于和真值转换

原码的定义 -- 整数

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第3张图片

原码的定义 -- 小数

原码可以表示的小数范围在-1和1之间,其他带小数的数可以用整数+小数这样的组合来表示。

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第4张图片

例题

注意,在由原码求真值的题目中,若结果为正,那也得加一个 + 号

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第5张图片

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第6张图片

3. 补码表示法

补的概念

取模为12的时候,+2等价于-10,-4等价于+8,+3等价于+15等价于+27。

在上面的例子里,-10的补数为+2,-4的补数为+8。并且正数的补数是其本身

由此可以知道,只要确定了模,就可以为任何一个负数找到与其对应的正数,也就是补数,这样就方便进行运算,在对含有负数的式子进行加法运算时,可以先将负数取补数,最后取模即可。

补的结论

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第7张图片

补码的定义 -- 整数

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第8张图片

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第9张图片

补码的定义 -- 小数

用补码表示负的小数时,因为符号位要为1,所以应该模2,也就是用2减去真值,这样得到的结果里,符号位一定为1,数值位即为真值的补数。

要注意,2也得用二进制来表示!

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第10张图片

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第11张图片

变形补码 -- 双符号位补码

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第12张图片

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第13张图片

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第14张图片

求补码的快捷方式

对正数来说,补码就是符号位加上真值本身,简单易求;

对负数来说,求补码则有快捷方式:

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第15张图片

总而言之,就是符号位不变,数值位取反,末尾加一

4. 反码表示法

反码通常是基于上面原码与补码转换的快捷方式,所需要的中间过渡

由于正数不需要快捷方式,所以反码还是和原码补码一样,只有符号位和真值不同。

只有负数需要将全体数值位转换为相反的数。

反码的定义 -- 整数

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第16张图片

反码的定义 -- 小数

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第17张图片

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第18张图片

例题

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第19张图片

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第20张图片

5. 移码表示法

用原码和补码时很难一眼比出两个数的大小,这时候就需要使用移码了。

移码的定义

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第21张图片

移码的特点

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第22张图片

同一个真值的移码和补码只差一个符号位。

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第23张图片

作业题知识点补充

1. 分数转换为二进制数

29/128 为例:

第一步

把分子和分母都转换为二进制,要表示为2的多少次。
那么分子表示为:2^4+2^3+2^2+2^0
那么分母呢:2^7
继续将他们写成分数形式:(2^4+2^3+2^2+2^0)/2^7。

接下来计算就好了,结果为:2^-3+2^-4+2^-5+2^-7。

第二步

讲一个小知识点:对于二进制数左移是放大2倍,右移是缩小2倍
那么对于二进制1,我们右移得到0.1,缩小2倍。所以0.1代表1/2,即2-1。同理,0.01就是1/4,即2-2,以此类推。

有了这个基础,再看看上面的式子,不就是0.001+0.0001+0.000 01+0.000 0001。
用二进制加法计算出最后结果,即0.001 1101。

2. 无原码的特殊情况

补码为1.0000的真值为-1,但是没有原码,因为小数原码的范围如下:

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第24张图片
可知,小数1和-1都没有原码

补码为1,0000的真值为-16,但也没有原码,因为整数原码的范围如下:

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第25张图片

当数值位有四位时,原码的取值只能小于+16。

3. 十六进制转换为二进制

每个十六进制数都代表四位二进制数,所以直接按位置转换即可。

0 ~ 9 都可以当成十进制数化为二进制数,只是不足的要补足至四位,而剩下的则如下表所示:

十六进制 十进制 二进制
A 10 1010
B 11 1011
C 12 1100
D 13 1101
E 14 1110
F 15 1111

2.2 数的定点表示和浮点表示

2.1.1 定点表示

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第26张图片

2.1.2 浮点表示

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第27张图片

规格化数:浮点数的尾数以1开头,例如0.110101。

1. 浮点数的表示形式

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第28张图片

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第29张图片

2. 浮点数的表示范围

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第30张图片

3. 浮点数的规范化

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第31张图片

2.2.3 定点数和浮点数的比较

  • 当浮点机与定点机中的数其位数相同时,浮点数的表示范围比定点数大得多。(浮点机和定点记中的数都表示为机器数)
  • 当浮点数为规格化数时,其精度远高于定点数。
  • 浮点数运算分阶码和尾数部分,而且运算结果要求规格化。
  • 在溢出的判断方法上,浮点数是对规格化的阶码进行判断,而定点数是对数值本身进行判断。

2.2.4 举例

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第32张图片

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第33张图片

机器零

  • 当浮点数尾数为0时,不论其阶码是多少,按机器零处理;
  • 当浮点数阶码等于或小于它能表示的最小数时,不论尾数是多少,按机器零处理

2.2.5 IEEE 754 标准

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第34张图片

S:数符号,表示浮点数的正负,0为正,1为负;

阶码(含阶符):实际上是偏移阶码,求得阶码需要用原来的阶数加上不同长度实数对应的偏移量

偏移量:短实数(32位)127,长实数(64)1023

尾数:要先化为“1.xx……xx”的形式,再把最高位的“1”省略,只列出小数点后面的数,不足23位的要用0补齐

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第35张图片

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第36张图片

2.3 定点运算

2.3.1 移位运算

1. 移位的意义

定点移位,就是小数点的绝对位置不动,其余的数字全部向左或向右移动;

左移时,绝对值增大;右移时,绝对值减小

在计算机中整移位运算很有用,让移位和加减配合就可以实现乘除运算。

算术移位:有符号数的移位,数值位在移位,符号位不变。

逻辑移位:无符号数的移位。

2. 算术移位规则

机器数移位后的空位添补规则

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第37张图片

要注意,在算术移位中,移位前后符号位不变。

而逻辑移位中,左移时低位添0,高位丢弃;右移时高位添0,低位丢弃。

2.3.2 加减法运算

1. 补码加减运算公式

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第38张图片

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第39张图片

2. 溢出判断

一位符号位补码判断溢出:

若相加的两个数的符号位相同,和的符号位不同(无论是否有进位),即为溢出

若相加的两个数符号位不同,则不会溢出。

两位符号位补码判断溢出:

结果的双符号位相同 → 无溢出

结果的双符号位不同 → 溢出

最高符号位代表其真正的符号

2.3.3 乘法运算

1. 笔算乘法

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第40张图片

2. 笔算乘法改进

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第41张图片

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第42张图片

3. 原码乘法

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第43张图片

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第44张图片

 2.3.4 除法运算

1. 笔算除法

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第45张图片

 2. 原码除法

【机组】计算机系统组成课程笔记 第二章 计算机中的信息表示_第46张图片

 约定:

  • 小数定点除法 x* < y*
  • 整数定点除法 x* > y*
  • 被除数不等于0
  • 除数不能为0

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