目录
-
十进制、二进制、八进制、十六进制的相互转换
任意进制数转换为十进制数
将任意进制数的各位数码与它们的权值相乘,再把乘积相加,就得到了一个十进制数。这种方法称为按权展开相加法。
十进制数转换为任意进制数
一个十进制数转换为任意进制数,常采用基数乘除法。这种转换方法对十进制数的整数部分和小数部分将分别处理,对整数部分用除基取余法,对小数部分用乘基取整法,最后将整数部分和小数部分的转换结果拼接起来。
除基取余法(整数部分的转换):整数部分除基取余,最先取得的余数为数的最低位,最后取得的余数为数的最高位(即除基取余,先余为低,后余为高),商为0时结束。
二进制数转换为八进制数和十六进制数
对于一个二进制混合数(既包含整数部分,也包含小数部分),再转换时应以小数点为界。其整数部分,从小数点开始往左数,将一串二进制数分为3位(8进制)一组或4位(十六进制)一组,在数的最左边可根据需要加 “0” 补齐;对于小数部分,从小数点开始往右数,也将一串二进制数分为3位一组或4位一组,在数的最右边也可根据需要加 “0” 补齐。最终使总的位数位3或4的整数倍,然后分别用对应的八进制或十六进制数取代。
同样,由八进制数或十六进制数转换成二进制数,只需将每位改成3位或4位二进制数即可(必要时去掉整数最高位或小数最低位的0)。八进制数和十六进制数之间的转换也能方便地实现,十六进制转换为八进制数(或八进制数 转换为十六进制数)时,先将十六进制(八进制)数转换为二进制数,然后又二进制数转换为八进制(十六进制)数较为方便。
-
BCD码
二进制编码的十进制数(Binary-Coded Decimal, BCD)通常采用4位二进制数来表示一位十进制数中的0~9这10个数码。这种编码方法使二进制数和十进制数之间的转换得以快速进行。但4位二进制数可以组合出16种代码,因此必有6种状态为冗余状态。
下面列举几种常用的BCD码。
1)8421码(最常用)。它是一种有权码,设其各位的数值为,,,,则权值从高到低依次为8,4,2,1,它表示的十进制数为 D = 8 + 4 + 2 + 1。如81000;91001。
若两个8421 码相加之和小于等于(1001) = (9),则不需要修正;若相加之和大于等于(1010) = (10),,则要加6修正(从1010到1111这6个位无效码,当运算结果落于这个区间时,需要将运算结果加上6),并向高位进位,进位可以在首次相加或修正时产生。
2)余3码。这是一种无权码,是在8421码的基础上加(0011) 形成的因每个数都多余“3”,因此称为余3码。如81011;91100。
3)2421码,这也是一种有权码,权值由高到低分别为2,4,2,1,特点是大于等于5的4位二进制数中最高位为1,小于5的最高位为0。如51011而非0101。
-
符号、英文和中文在计算机中的表达:ASCII码
目前,国际上普遍采用的一种字符系统是 7位二进制编码的 ASCII码(每个字节的最高位保持为 0,可用于传输时的奇偶校验位),它可表示 10 个十进制数码、52 个英文大写字母和小写字母 (A~Z,a~z) 及一定数量的专用符号 (如S、%、+、=等),共128 个字符。
在 ASCII 码中,编码值 0~31 为控制字符,用于通信控制或设备的功能控制:;编码值 127是 DEL码;编码值32是空格 SP;编码值32~126共95 个字符称为可印刷字符。
-
数值数据的表达:真值;无/有符号数
真值和机器数
在日常生活中,通常用正号、负号来分别表示正数(正号可省略) 和负数,如+15、-8等。这种带“+”或 “-” 符号的数称为真值,真值是机器数所代表的实际值。
在计算机中,通常采用数的符号和数值一起编码的方法来表示数据。常用的有原码、补码和反码表示法。这几种表示法都将数据的符号数字化,通常用 “0” 表示 “正” ,用 “1” 表示 “负” 。如 0,101(这里的逗号 “,” 实际上并不存在,仅为区分符号位与数值位) 表示+5。这种把符号 “数字化” 的数称为机器数。
无符号数和有符号数的表示
在计算机中参与运算的机器数有两大类:无符号数和有符号数。
1)无符号数。指整个机器字长的全部二进制位均为数值位,没有符号位,相当于数的绝对值。若机器字长为8位,则数的表示范围为0 ~ - 1,即0 ~ 255。
2)有符号数。在机器中,数的 “ 正 ” “ 负 ” 号是无法识别的,有符号数用 “ 0 ” 表示 “ 正 ” 号,用 “ 1 ” 表示“ 负 ”号,从而将符号也数值化,并通常约定二进制数的最高位为符号位,即将符号位放在有效数字的前面,组成有符号数。
有符号数的机器表示有原码、补码、反码和移码。为了能正确区别真值和各种机器数,约
定用X表示真值,用[X]_原表示原码,[X]_补表示补码,[X]_反表示反码,[X]_移表示移码。
-
浮点数(阶码、尾数、IEEE754)
浮点数的表示
浮点数表示法是指以适当的形式将比例因子表示在数据中,让小数点的位置根据需要而浮动。这样,在位数有限的情况下,既扩大了数的表示范围,又保持了数的有效精度。例如,用定点数表示电子的质量(9 x g)或太阳的质量(2 x g)是非常不方便的。
浮点数的表示格式
通常,浮点数表示为 N = x M,式中,r 是浮点数阶码的底(隐含),与尾数的基数相同,通常r= 2。E和 M都是有符号的定点数,E称为阶码,M称为尾数。可见浮点数由阶码和尾数两部分组成,如图2.12 所示。
阶码是整数,阶符和阶码的位数 m 共同反映浮点数的表示范围及小数点的实际位置;数符 S 代表浮点数的符号;尾数的位数 n 反映浮点数的精度。
以上复习资料均由作者本人根据所学计算机组成原理课程大纲,参考包健《计算机组成原理与系统结构》和《2022年计算机组成原理考研复习指导》整理而成。