1.1 计算机系统基础知识
1.1.1 计算机硬件基本组成
1.1.2 中央处理单元
1.1.3 数据表示
机器数:计算机中的二进制数据
真值:机器数对应的实际数
机器数无符号表示正数;若约定小数点的位置在机器数的最低位之后,则是纯整数;若约定小数点的位置在机器数的最高位之前,则是纯小数。
带符号机器数,机器数的最高位表示正负符号位,其余位表示数值;同理上面的约定。
教材如下:
1)原码: 最高位是符号位,0表示正号,1表示负号,其余n-1位是数值的绝对值;(n表示机器长,机器数用n个二进制表示数据)
+1 原码:0 000 0001(2的0次方); -1 原码:1 000 0001
+45 原码: 0 010 1101 (2的5次方+3次方+2次方+0次方) ; -45 原码: 1 010 1101
+0.5 原码: 0.100 0000 (0.5=1/2,即2的-1次方),小数点后表示2的-1,-2,-3 ...次方 ;
-0.5 原码: 1.100 0000 (教材上用1◇100 0000 , ◇表示小数点的位置)
数值0原码两种表示:+0 原码: 0 000 0000 ;-0 原码: 1 000 0000
教材如下:
2)反码 :最高位是符号位,0表示正号,1表示负号 ;正数的反码=原码相同,负数的反码是绝对值按位求反;
+1:反码 (即原码) :0 000 0001 ; -1反码:1 111 1110 (也就是+1的所有位取反,因为最高位表示正负也相反)
+0.5 反码: 0 ◇100 0000 ; -0.5 反码: 1 ◇001 1111 (教材上用 ◇表示小数点的位置)
数值0原码两种表示:+0 反码: 0 000 0000 ;-0 反码: 1 111 1111
教材如下:
3)补码:最高位是符号位,0表示正号,1表示负号 ;正数的补码=原码=反码 ;负数补码=反码末尾+1 ;
+1 补码:0 000 0001 ; -1 补码 :1 111 1111 (反码:1 111 1110 +1)
+45补码:0 010 1101 ; -45补码 :1 101 0011
0.5 补码: 0 ◇100 0000 ; -0.5 补码: 1 ◇100 0000(反码: 1 ◇001 1111+1 需要向前面进位, 教材上用 ◇表示小数点的位置)
数值0 有唯一的编码:+0 补码:0 000 0000 ; -0 补码: 0 000 000
教材如下:
4)移码 : 实际上只需要将补码的符号位取反 即可得到相应的移码
+1 移码:1 000 0001 ( +1的原码0000 0001,需要偏移2的7次方,对于纯正数来说直接,是直接在首位加1);
-1 移码: 0 111 1111 ( -1 + 128 【2的7次方】-> 127 ,对于负数来说需要先加偏移量,再转换成二进制)
+45 移码:1010 1101 ; -45 移码:0 101 0011 (-45补码: 1 101 0011 )
+0.5 移码:1 ◇100 0000 ;(补码: 0 ◇100 0000 ,转换成1+0.5=1.5,对于正纯小数来说移码是最高位换成1 ),
-0.5 移码:0 ◇100 0000 ;(补码: 1 ◇100 0000 ,转换成1+【-0.5】=0.5 ),
+0 移码:1000 0000 ; -0 移码:1000 0000
2)定点数和浮点数
教材:
//。。。。。未完
1.1.4 校验码
确保数据在传输过程中准确无误,思想是将数据分为合法编码和错误编码,如果合法编码出错会变成错误编码,这样可以检测出数据是否有错。
常见的三种:奇偶校验码,海明码,循环冗余校验码。