一、计算机的组成

计算机硬件五大部件构成:控制器、运算器、存储器、输入设备和输出设备

图片

(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

浮点数利用指数达到了浮动小数点的效果, 从而灵活地表达更大范围的实数。