一、计算机的组成
计算机硬件五大部件构成:控制器、运算器、存储器、输入设备和输出设备。
(1)运算器
也称算术逻辑单元(ALU),对数据进行算术运算和逻辑运算。
-
加法强(累加器)
专门存放算术或逻辑运算的操作数和运算结果的寄存器。
-
程序状态寄存器
PSW用来存放两类信息:
一类是体现当前指令执行结果的各种状态信息,如有无进位(CY位),有无溢出(OV位),结果正负(SF位),结果是否为零(ZF位),奇偶标志位(P位)等;另一类是存放控制信息,如允许中断(IF位),跟踪标志(TF位)等 。
(2)控制器
是分析和执行指令的部件
- 指令寄存器
- 指令译码器
- 程序计数器
- 定时与控制电路
- 堆栈和堆栈指针
二、 数据表示和检验
2.1、数的进制
- 十进制
- 二进制
- 八进制
- 十六进制
2.2、进制转换
十进制转换二进制
把被转换的十进制整数反复地除以2,直到商为0,所得的余数(从末位读起)就是这个数的二进制表示。简称“除2取余法”。
(221)10 =(11011101)2
二进制转十进制
方法是:二进制数按权展开求和。
例:(10110)2转换成十进制数 (22) 10
0*20 + 1*21 + 1*22+ 0*23 + 1*24 =22
三、源码、反码、补码、移码
3.1、带符号数的表示
通常的做法是约定一个数的最高位为符号,若该位为0,则表示正数;若该位为1,则表示负数。
3.2、原码
用最高位表示 符号位,数值部分用二进制绝对值表示,这就是源码的表示方法。
例如: +11的原码:0 0001011 -11的原码是:1 0001011
3.3、反码
原码变反码规则:正数的反码和其原码形式相同,负数的反码是除符号位,其他各位逐位取反(即0变1,1变为0 )。
+11的原码:0 0001011 -11的原码是:1 0001011
例如: +11的反码:0 0001011 -11的反码是:1 1110100
3.4、补码
补码规则为:正数的补码和其原码形式相同,负数的补码是原码除符号位以外逐位取反(即0变1,1变为0),最后在末尾加1.
+11的原码:0 0001011 -11的原码是:1 0001011
例如: +11的补码:0 0001011 -11的反码是:1 1110101
将补码转换为真值:[[X]补]补 =[X]原
3.5、移码(增码)
无论正数、负数,在补码的基础上对符号位取反,一般用做浮点数的阶码,引入的目的是为了保证浮点的机器码为全0。
+11的补码:0 0001011 -11的反码是:1 1110101
例如:+11的移码:1 0001011 -11的移码是:0 1110101
四、定点数和浮点数
计算机中,通常是用定点数来表示整数和纯小数,分别称为定点整数和定点小数。对于既有整数部分、又有小数部分的数,一般用浮点数表示。
4.1、定点数
- 定点整数:小数点的位置固定在最低位的右边,不占位 。
- 定点小数:小数点的位置固定在符号位与最高数值位之间,表示一个纯小数 。
4.2、浮点数
用类似科学计数法来表达,即
N = M *Re
M称为尾数, R称为基数, e为阶码(指数)
例如 1001.101 的规范浮点数表达为 1.001101 × 23
浮点数利用指数达到了浮动小数点的效果, 从而灵活地表达更大范围的实数。