计算机系统概述
CPI:每执行一条指令所需的时钟周期数
CPU执行时间=CPU时钟周期数/主频=(指令条数*CPI)/主频
数据的表示和计算
海明码
大小端存储
- 小端存储:先存低位字节,后存高位字节
- 大端存储:先存高位字节,后存低位字节
ox1245678存储在int型变量中,在内存的表现形式如下:
C语言各个类型所占字节数
类型 | 16位 | 32 位 | 64位 |
---|---|---|---|
char | 1(字节) | 1 | 1 |
short int | 2 | 2 | 2 |
int | 2 | 4 | 4 |
unsigned int | 2 | 4 | 4 |
float | 4 | 4 | 4 |
double | 8 | 8 | 8 |
long | 4 | 4 | 8 |
long long | 8 | 8 | 8 |
unsigned long | 4 | 4 | 8 |
算数移位
二进制B;八进制O;十进制D;十六进制H;
- 非十进制数到十进制数的转换:按相应的权值表达式展开
- 十进制到非十进制数的转换
- 对整数:除n取余
- 对小数:乘n取整
- 二进制与十六进制数之间的转换
- 每4位二进制码对应1位十六进制数
- 整数部分不够4位时在高位(左侧)补 0;小数部分不够4位时在低位(右侧)补 0
例题
1011.11B=()D =1×23+0×22+1×21+1×20+1×2-1+ 1×2-2 =8+2+1+0.5+0.25 =11.75
5B.8H=()D =5×161+11×160+8×16-1 =80+11+0.5 =91.5
25.5D=()H = 11001.1B= 19.8H
11001010.0110101B=()H =CA.6AH
机器数的表示与运算
有符号数和无符号数取决于程序员的定义,对于需要使用负数的程序,就选择有符号数。0——正数 1——负数
- 原码:最高位为符号位,其余为真值部分
- 反码
- 若X>0 ,则 [X]反=[X]原
- 若X<0, 则 [X]反= 对应原码的符号位不变,数值部分按位求反
- 补码
- 若X>0, 则[X]补= [X]反= [X]原
- 若X<0, 则[X]补= [X]反+1
[B]补转为[-B]补:全部位(含符号位)取反,末位加一
负数补码->原码:数值位取反加一(对应原码的符号位不变)
例题:X= – 52= – 0110100
[X]原=10110100
[X]反=11001011
[X]补= [X]反+1=11001100
符号数的算术运算
通过引进补码,可将减法运算转换为加法运算。
即: [X+Y]补=[X]补+[Y]补 [X-Y]补=[X+(-Y)]补 =[X]补+[-Y]补。
注:运算时符号位须对齐
例题:66-51=66+(-51)=15
用二进制补码运算:
[+66]补= [+66]原= 01000010
[-51]原=10110011
[-51]补=11001101
[+66]补+ [-51]补= 00001111
例题:X=-52=-0110100,Y=116=+1110100,求X+Y=?
[X]原=10110100
[X]补= [X]反+1=11001100
[Y]补= [Y]原=01110100
[X+Y]补= [X]补+ [Y]补 =11001100+01110100 =01000000 X+Y=+1000000
异或:如果a、b两个值不相同,则异或结果为1。如果a、b两个值相同,异或结果为0。
各个校验方式的纠错能力
- CRC循环冗余校验码:默认一串数据只错一位,
- 海明码:可以发现错误位置和错误个数,为自动纠错提供依据
- 奇偶校验码不具有纠错能力
IEEE754
数符总是隐含表示。阶码用移码表示,移码是在真值X上加一个常数(偏置值)。偏置值=2n-1,其中n为阶码。尾数用原码表示。
类型 | 数符 | 阶码 | 尾数数值 | 总位数 | 偏置值 | 真值 |
---|---|---|---|---|---|---|
短浮点型 | 1 | 8 | 23 | 32 | 127 | |
长浮点型 | 1 | 11 | 52 | 64 | 1023 | |
临时浮点型 | 1 | 15 | 64 | 80 | 16383 |
浮点数加减
- K->M->G->T->P->E->Z,依次是103倍
- 1GB=210MB=230B
- 1MB=220B
-
时间
1ps(皮秒)=10-12s
- 1ns(纳秒)=10-9s
- 1μs(微秒)=10-6s
-
CPU 中央处理器
运算器
- ALU 算数逻辑单元
- ACC 累加寄存器
- PSW 程序状态字寄存器
- CT 计数器
- 移位器
- 通用寄存器
- 暂存寄存器
- 控制器
【1】计算机组成原理@唐塑飞