(
课件网) 第2章 计算机中数据的表示 2.1 进位计数制及其相互转换 2.2 定点数的表示 2.3 浮点数的表示 2.4 非数值数据的表示 2.5 数据校验码 关联 习题 2.1 进位计数制及其相互转换 2.1.1 进位计数制 进位计数制是一种按进位进行计数的制式。在日常工作与生活中,我们习惯使用十进制数,而计算机内部只能识别二进制数,但在程序设计时,数据往往用十进制数或十六进制数表示,而很少用二进制数,因为用二进制数表示数据或地址时,位数太长,书写不方便,易出错。 进位计数制具有以下两方面特征: ● 基数R(Radix):是指进制数中数码所允许取值的个数,且计数规则是“逢R进一”。 ● 位权W(Weight):是指基数R的i次幂(Ri),表示进制数中第i位的位权。 1.十进制数(Decimal) 十进制数是我们日常工作生活中最常用的数,数中的任一数码di{0,1,2,…,9},因此十进制数的基数为10,且逢十进一;十进制数的位权为10i。任何一个十进制数都可以按下式写成一个按权展开的多项式和的形式: D=dndn-1…d1d0.d-1…d-m =dn×10n+dn-1×10n-1+…+d1×101+d0×100+d-1×10-1 +…+d-m×10-m = di×10i (2-1) 十进制数的后缀为D,可省略。如78D、179.26D可写做78、179.26。 2.二进制数(Binary) 二进制数中的任一数码bi{0,1},因此二进制数的基数为2,且逢二进一;二进制数的位权为2i。 任何一个二进制数都可以按下式写成一个按权展开的多项式和的形式: B= bnbn-1…b1b0.b-1…b-m =bn×2n+bn-1×2n-1+…+b1×21+b0×20+ b-1×2-1+… +b-m×2-m +… +b-m ×2-m = bi×2i (2-2) 二进制数的后缀为B,如1001B、10011101.1101B。 3.十六进制数(Hexadecimal) 十六进制数中的任一数码hi{0,1,2,…,9,A,B,C,D,E,F},因此十六进制数的基数为16,且逢十六进一;十六进制数的位权为16i。 任何一个十六进制数都可以按下式写成一个按权展开的多项式和的形式: H = hnhn-1 …h1h0.h-1…h-m = hn × 16n + hn-1 × 16n-1 + … + h1×161+h0×160+h-1×16-1+… +h-m×16-m = hi×16i (2-3) 十六进制数的后缀为H,如23AH、9C78.1B3H等,A~F相当于十进制数的10~15。为了区分十六进制数和标识符(标号、变量等),当十六进制数首位为A~F时,其前必须加“0”,如0F08H、0C57.2H。 2.1.2 进位计数制的相互转换 1.二进制数与十进制数的转换 (1) 二进制数转换为十进制数。直接按式(2-1)展开并求和即可。 【例2-1】 将101110.101B转换为十进制数。 解:101110.101B= 1×25+0×24 +1×23+1×22+1×21+0×20+1×2-1+0×2-2+1×2-3 = 46.625 (2) 十进制数转换为二进制数。十进制数转换为二进制数的方法有两种:直接法和查表法。 直接法:对于整数部分采用“除2取余法”,直到商为零,而余数(由低位到高位)即为转换成的二进制数整数部分;对于小数部分采用“乘2取整法”,而积的整数部分(由高位到低位)即为转换成的二进制数小数部分。最后将转换结果合起来便得到相应的二进制数。 【例2-2】 将25.696D转换为二进制数。 解:对整数部分,采用“除2取余法”,计算如下: 因此 25D = 11001B 对于小数部分,采用“乘2取整法”,计算如下: 因此 0.696D≈0.10110B 所以 25.696D≈11001.10110B 查表法:利用十进制与二进制数对照表,把十进制数分解成2i多项式和的形式,然后查表求得对应的二进制数。十进制转换为二进制数对应关系如表2-1所示。 表2-1 十进制数与2的整次幂之间的对应关系 具体方 ... ...