在进行学习之前,我对本章节内容分成了重点与次重点两块知识内容。
重点关键词:
数据的表示、运算器与控制器、流水线技术、存储系统、校验码
次重点关键词:
Flynn分类法、CISC与RISC、总线系统、可靠性
分清楚考察重点内容后,可以开始进行本节内容的学习了。
一、数据的表示:
1、按权展开法 => 用于R进制向十进制转换使用。重要程度:★
其转换原理很简单,将R进制数的每一位数值用来表示,在这个幂中,底数R其实就是所谓的“权”,指数k是当前位与小数点间的距离。
二进制数:1001101.0101=
八进制数:703.02=7×+3×+2×
在这个二转十的例子中可以看出来,小数点左边指数k值从0开始算起,右边k值从1算起取绝对值。
2、短除法 => 用于十进制向R进制转换使用。重要程度:★
其转换原理,是将十进制数除以对应R值取余摘出相应值从上到下书写,直到除数小于等于权数时,停止计算,将计算结果从下到上进行取值。
十进制数:2丨94 余 0
2丨47 1
2丨23 1
2丨11 1
2丨5 1
2丨2 0
1 1
最终结果为94=
3、二进制与八进制、十六进制互转。重要程度:★★★★★
首先来看二八进制的转换原理 => 二进制数有 0 1 两位基数,八进制数有 0 ~ 7 八位基数,八进制的最大位7可由 进行表示,同理推出最小位0可由进行表示。
既然八进制的最大位数、最小位数用三位二进制数都能算出了,那很简单的就能推出每三位二进制数能表示一位八进制数这个结论。
所以,当我得到一行二进制数,我就可以推出以下的转换规律:
1)整数部份从最低有效位开始,以3位一组,最高有效位不足3位时以0补齐,每一组均可转换成一个八进制的值,转换完毕就是八进制的整数。
2)小数部份从最高有效位开始,以3位一组,最低有效位不足3位时以0补齐,每一组均可转换成一个八进制的值,转换完毕就是八进制的小数。
如1010101110 => 1 010 101 110 ,由于最高位为1差两位,那就补0得到 001 010 101 110,转换为相应八进制数就是 也可以写成o1256。同理,每一位八进制数获得3位二进制数,就从得到的八进制数反推二进制数。
有了上面的例子,再计算十六进制与二进制互转就很简单了。十六进制数有 0 ~ 15 十六位基数,最大位15可由进行表示,即每四位二进制数可以表示一位十六进制数。值得注意的是,十六进制数中 第 10 ~ 15 位数用 A ~ F 表示。
如10001110 => 1000 1110 ,转换可得到0x8E。
当有需求是十六进制转换为八进制时,也有相应的处理方案:
先用1化4方法,将十六进制化为二进制;再用3并1方法,将二进制化为8进制。
例: = =
小数点前的高位零和小数点后的低位零可以去除。
4、码制。重要程度:★★★
在计算机中,码制分为原码、反码、补码、移码四种。通常用八位二进制数来表示,最高位为符号位,0表示正数、1表示负数,后七位表示数值。
数值1 | 数值-1 | 1-1 | |
原码 | 0000 0001 | 1000 0001 | 1000 0010 |
反码 | 0000 0001 | 1111 1110 | 1111 1111 |
补码 | 0000 0001 | 1111 1111 | 0000 0000 |
移码 | 1000 0001 | 0111 1111 | 1000 0000 |
1)正数的原码、反码、补码相同
2)负数的反码是在原码基础上,除符号位外剩余各位全部取反得到的码制就是反码,反码加1为补码。
3)移码是在补码的基础上,符号位取反。
4)计算机里使用补码进行加减法运算。
5)移码用作浮点数的接码。