Temp
CPU
- 程序控制
- 操作控制
- 时间控制
- 数据控制
运算器
- MemoryvaluelDR
- DRvaluelAC
- MemoryvaluerDR
- DRvaluerALU
- ALUresultPSWresultDRresultAC50if DRresultMemory
- 算术运算
- 逻辑运算
控制器
- MemoryinstructionDRinstructionIR
- 保证程序正确执行
- 处理异常
若机器字长n=8,最高位为符号位,其余位为数值位,若所表示的真值超过字长称作溢出。
定点整数范围:
(-127,+127)
定点小数范围:
(-0.9921875,+0.9921875)
Dec | Dec原 | Bin |
-127 | 255 | 1 1111111 |
-0 | 128 | 1 0000000 |
+0 | 0 | 0 0000000 |
127 | 127 | 0 1111111 |
定点整数范围:
(-127,+127)
定点小数范围:
(-0.9921875,+0.9921875)
Dec | Dec反 | Bin |
-127 | 128 | 1 0000000 |
-0 | 255 | 1 1111111 |
+0 | 0 | 0 0000000 |
127 | 127 | 0 1111111 |
定点整数范围:
(-128,+127)
定点小数范围:
(-1,+0.9921875)
Dec | Dec补 | Bin |
-128 | 128 | 1 0000000 |
-0 | 256 | 100000000 |
+0 | 0 | 0 0000000 |
127 | 127 | 0 1111111 |
定点整数范围:
(-128,+127)
定点小数范围:
(-1,+0.9921875)
Dec | Dec补 | Bin |
-128 | 0 | 0 0000000 |
-0 | 256 | 110000000 |
+0 | 0 | 1 0000000 |
127 | 127 | 1 1111111 |
码制转换
Bin→Dec: Bn−1...B0 Dec=∑i=0n−1Bi∗2iHex→Dec: Hn−1...H0 Dec=∑i=0(n−1)Hi∗16i
浮点数
阶符阶码数符尾数一般表示
M=2E∗F;F=(b0b1...bn−1)Et=E−offset
阶码真值Et;阶码E;尾数F
IEEE754
M=(−1)S2E∗F if: E=0 →Et=1−offset →Ft∈[0,2n−1] ∴M∈[0,1)if: E=max →Et=0 ∴M∈{−∞,+∞,NaN}if: 0<E<max →Et=E−offset →Ft∈[20,2n+1−1] ∴M∈[−(F2n+1−1),−1]∪[1,F2n+1−1]
数符(−1)S;阶码E;尾数F
阶码真值Et;E→移码;F→原码
- 3种形式
- 单精度
- M=32s1eeeeeeee8pppppppppp...pppppppppp23
- 双精度
- M=64s1eeeeeeeeeee11pppppppppp......pppppppppp52
- 扩充精度\临时浮点数
- M=80s1eeeeeeeeeeeeeee15pppppppppp.........pppppppppp64
- 3种情况
- E全为0 表示非规格化的值
- E全为1 表示特殊值
- E为1,0混合 表示规格化的值
X=2i∗M;Y=2J∗Mi<j
K=∣i−j∣i=i+KMx±My
校验码
奇偶校验码
Parity Codes通过在编码中增加一位,使编码中的1的个数变为奇数或偶数。
这种校验方式只能检测到有奇数位发生变化的情况,且不能知道错误的是哪位。
海明码
Hamming Code在数据位间插入k个校验位,
这种校验码可以知道出错的是那一位。
Data(Dn−1...D0);Parity(Pk...P1)∃k<n⟹2k−1≥n+k→Hamming(Hn+k,Hn+k−1...H1)
校验位
∀Pi∈Data,i=2i−1if n=8 k=4H12D7H11D6H10D5H9D4H8P4H7D3H6D2H5D1H4P3H3D0H2P2H1P1∀Hi∈Hammingif Hi∈/Parity Hi=Hj+...+Hk&j+...+k=i&{Hj,...,Hk}∈Parity Hi→Pj...Pkif Hj∈Parity Hj=∑d∈Pjd0⊕d1⊕...
Hj偶校验;奇校验∼Hj ∀G, i≤kGi=Pi⊕∑d∈Pid0⊕d1⊕...if (G1...Gk)=0 →Passedif (G1...Gk)>0 H(Gk...G1)=^H(Gk...G1) Passed
循环冗余校验码
Cyclic Redundancy Check