# 软件设计工程师
## 中央处理单元CPU
### 组成
运算器、控制器、寄存器、内部总线
* 运算器:
作用:执行所有的算数运算,如加减乘除,与或非 比较等
* 算数逻辑单元 ALU
arithmetic [əˈrɪθmətɪk] and logic unit [ˈlɑːdʒɪk ˈjuːnɪt]
实现对数据的计算和逻辑运算
* 累加寄存器. AC
Accumulator register
[əˈkjuːmjəleɪtər ˈredʒɪstər]
运算结果或源操作数的存放区域
* 数据缓冲寄存器 DR
Data Register [ˈredʒɪstər]
暂时存放内存的指令或数据
* 状态条件寄存器 PSW
Program Status Word
保存指令运行结果的条件内容,如溢出标识等
* 控制器
作用:控制整个cpu工作,如程序控制、时序控制
* 指令寄存器。 IR
Instruction Register
[ɪnˈstrʌkʃn ˈredʒɪstər]
存放cpu执行指令
* 程序计数器. PC
program counter
存放指令执行地址(地址总线取指令在这)
* 地址寄存器。 AR
address register
保存当前cpu所访问内存地址
* 指令译码器。 ID
Instruction Decoder
[ɪnˈstrʌkʃn ˌdiːˈkoʊdər]
分析指令操作码
## 进制转换
### R进制转十进制
* 权位展开法
用R进制的每一位乘于R进制的次方,n是变量,从R进制数的整数最低位开始依次累加
如:六进制数5043
``3*6^0+4*6^1+O*6^2+5*6^3
=3+24+0+1080
=1107``
### 十进制转R进制
* 除R倒取余数直到商为0
如:十进制200转六进制
商``200/6=33 `` 余数``200\%6=2``
商``33/6=5`` 余数``33\%6=3``
商``5/6=0`` 余数``5\%6=5``
六进制为:235
### 二进制转八进制
每三位转为一个八进制数
如 0b01101 八进制:15
### 二进制转十六进制
每四位转一个十六进制
## 数的编码方式
### 原码
一个数的正常二进制表示最高位表示符合,数值0的原码有俩种
形式:+0(0 0000000),-0(1 0000000)
### 反码
正数的反码即是原码
负数的反码即除符号外,其他位按位取反
值0的反码有俩种形式
+0(0 0000000),-0(1 1111111)
### 补码
正数的补码即原码
负数的补码是在反码的基础上末尾加1.因此0的表示方式只有1种
+0=-0=0 0000000
-0的反码1 1111111末尾加1后0 0000000
### 移码
用于浮点数进算的阶码,无论正数负数都是将原码的首位(符号位)取反得到移码
### 码制和数值表示方式
| 码制 | 定点整数取值范围 | 定点小数取值范围 |
|------|------------------|------------------|
| 原码 |$$-(2^(n-1)-1)~+(2^(n-1)-1)$$|-(1-2^(n-1))~+(1-2^(n-1))|
| 反码 |$$-(2^(n-1)-1)~+(2^(n-1)-1)$$|$$-(1-2^(n-1))~+(1-2^(n-1))$$|
|补码|$$-2^(n-1)~+(2^(n-1)-1)$$|
$$1~+(1-2^(n-1))$$|
|移码|$$-2^(n-1)~+(2^(n-1)-1)$$|
$$1~+(1-2^(n-1))$$|
### 浮点表示法
表示法为``N=F*2^E``其中E称为阶码,F为尾数
类似于十进制的科学记数法
如:科学记数法 $$ 85.125=0.85125*10^2$$
二进制浮点表示法 ``0b101.011=0b0.101011*10^3``
浮点表示中,阶码为带符号的纯整数,尾数为带符号的纯小数,符号位为占最高位(正数0负数为1)格式如下:
| 阶符 | 阶码 | 数符 | 尾数 |
|------|------|------|------|
| | | | |
能表示的数值范围由阶码确定,所表示的数值精度由尾数确定
网友评论