第2章计算机的信息表示22.12.2数制及其转换数据表示Contents目录3本章详细阐述了数制的特点,介绍了计算机学科中常见的二进制、八进制和十六进制以及日常使用的十进制等不同进制的特点及其相互之间的转换方法。针对不同信息类型,讲解了计算机内的不同表示形式。针对数值型数据,根据定点数据和浮点数据的不同,介绍了所涉及的原码、反码和补码含义及其转换方式。而对于非数值型数据,概括介绍了字符、声音、图像和视频等各类信息在计算机内表示时所采用的编码方式。本章要点2.1数制及其转换5数制的特点日常生活中是常用的是十进制,但计算机中所有信息都必须以二进制形式进行编码。为了书写和编程方便,还采用了八进制、十六进制等。数制的特点数制包括计数符号和进位规则:①基数:在该进位制中用到的数码个数。②位权:每位的值对应该位上的数码乘以固定的数,即这位的权值。③进位制:多位数码中每一位的构成以及从低位到高位的进位规则称为进位计数制,简称进位制。④任意进制数R都可表示为按权展开多项式和的形式。6十进制十进制及其表示①用0-9共十个符号表示数,基数是10。②逢十进一。③每位的权值为10i,从小数点起往左整数部分的i取值0,1,2……,往右小数部分i取值-1,-2……④任意十进制数N可以表示为一个按权展开多项式和:式中的m、n是幂指数,且均为正整数;ai为第i位上的数符,10i为第i位上的权值。mniiiaN1107二进制二进制表示及其特点①用0-1共2个符号表示数,基数是2。②逢二进一。③每位的权值为2i,从小数点起往左整数部分的i取值0,1,2……,往右小数部分i取值-1,-2……④任意二进制数N可以表示为一个按权展开多项式和:式中的m、n是幂指数,且均为正整数;ai为第i位上的数符,2i为第i位上的权值。mniiiaN128二进制的特点计算机为什么要采用二进制呢?⑴二进制数只有0、1两个状态,易于实现。⑵二进制的运算规则简单。⑶二进制信息的存储和传输可靠。⑷二进制节省设备。⑸二进制可以用逻辑代数作为逻辑分析与设计的工具。可以把二进制“0”和“1”作为真和假来看待。缺点:⑴人们不熟悉、不易懂。⑵书写长,易错,所以提出八进制和十六进制。9二进制的特点10二进制的算术运算加法运算规则:0+0=0;0+1=1;1+0=1;1+1=10(产生进位)减法运算规则:0-0=0;1-0=1;1-1=0;0-1=1(产生借位)乘法运算规则:0×0=0;0×1=0;1×0=0;1×1=1。除法运算规则:0÷0=0;0÷1=0;1÷1=1;1÷0=0(无意义)。11二进制的逻辑运算1)与运算,规则如下:0∧0=00∧1=01∧0=01∧1=12)或运算,规则如下:0∨0=00∨1=11∨0=11∨1=13)非运算,规则如下:4)异或运算,规则如下:0⊕0=00⊕1=11⊕0=11⊕1=00=1,1=012八进制八进制表示及其特点①用0-7共8个符号表示数,基数是8。②逢八进一。③每位的权值为8i,从小数点起往左整数部分的i取值0,1,2……,往右小数部分i取值-1,-2……④任意八进制数N可以表示为一个按权展开多项式和:式中的m、n是幂指数,且均为正整数;ai为第i位上的数符,8i为第i位上的权值。mniiiaN1813十六进制十六进制表示及其特点①用0-9,A-F共16个符号表示数,基数是16。②逢十六进一。③每位的权值为16i,从小数点起往左整数部分的i取值0,1,2……,往右小数部分i取值-1,-2……④任意八进制数N可以表示为一个按权展开多项式和:式中的m、n是幂指数,且均为正整数;ai为第i位上的数符,16i为第i位上的权值。mniiiaN11614数制表示书写时为了区别数制:1)在数的右下角注明数制。如(1011)2、(32)8、(7B)16的下标表示它们的进制。2)在数字后面加字母来区别,加字母B(Binary)表示为二进制数;以字母O(Octal)表示为八进制数;以字母D(Decimal)或不加字母表示为十进制数;用字母H(Hexadecimal)表示为十六进制数。如1011B表示是二进制数,127H表示是十六进制数。15常用数制十进制01234567二进制00000001001000110100010101100111八进制0001020304050607十六进制01234567十进制89101112131415二进制10001001101010111100110111101111八进制1011121314151617十六进制89ABCDEF16常用数制转换规则各种进制之间的转换原则:任何两个有理数相等,则这两个有理数的整数和小数部分分别相等的,以按权展开多项式为基础,可以进行不同进制数之间的等值转换。任意非十进制转换为十进制规则:按权相加,即利用按权展开多项式将非十进制数的系数Xi与第i位权值相乘后求和得到十进制数。十进制转换为任意非十进制规则:整数部分与小数部分需分别进行转换。整数部分:“除基逆序取余”小数部分:“乘基顺序取整”。=1×27+1×26+1×25+1×24+0×23+1×22+0×21+1×20+0×2-1+1×2-2=(245.25)十例如:(11110101.01)2二进制数17十进制转二进制十进制整数转换二进制整数除2逆序取余十进制小数转换二进制小数乘2顺序取整211602580229121402712312110余数0.8125×221.6250×221.2500×220.5000×221.00001101乘积18二进制与八进制转换二进制数与八进制数之间的转换因为23=8,三位二进制数恰有八种组合,与八进制的8个数符一一对应。所以3位二进制数可直接转换为一位八进制数。1)二进制数转换为八进制时从小数点开始分别把整数和小数部分按每三位一组进行划分,不足三位,用0补足。然后用一位八进制数代换三位二进制数。001101001.010011100151.234(151.234)8(1101001.0100111)2=19二进制数与八进制数之间的转换因为23=8,三位二进制数恰有八种组合。所以三位二进制数可直接转换为一位八进制数。二进制数转换为八进制时从小数点开始分别把整数和小数部分按每三位一组进行划分,不足三位,用0补足,再用一位八进制数代换三位二进制数。2)八进制转换为二进制数每位八进制数用三位二进制数来代替。001101001.010011100151.234(151.234)8(1101001.0100111)2=二进制与八进制转换20二进制数与十六进制数之间的转换因为24=16,四位二进制数恰有十六种组合。所以四位二进制数可直接转换为一位十六进制数。1)二进制数转换为十六进制时从小数点开始分别把整数和小数部分按每四位一组进行划分,不足四位,用0补足,再用一位十六进制数代换四位二进制数。2)十六进制转换为二进制数每位十六进制数用四位二进制数来代替。10010100101.11100111014A5.E74(4A5.E74)16(10010100101.1110011101)2=000二进制与十六进制转换2.2数据表示22数值型数据的表示1计算机中数的符号:正数符号为0,负数符号为1。计算机中,涉及到小数点位置时,数有两种表示方法,即定点表示和浮点表示。定点数表示任意一个二进制数可以表示为纯整数(或纯小数)和一个2的整数次幂的乘积。如,二进制数N可写成:N=2P×S其中S称为N的尾数;P称为N的阶码;2称为阶码的底。尾数S表示了N的全部有效数字,阶码P指明了小数点的位置。此处P、S都是用二进制表示的数。23阶码固定值时,这种表示法为数的定点表示法。这样的数称为定点数。如P=0,且尾数S为纯整数,这时定点数只能表示整数,称为定点整数。如P=0,且尾数S为纯小数,这时定点数只能表示小数,称为定点小数。当定点数的位数确定以后,定点数表示的范围也就确定了。如果一个数超过了这个范围,这种现象称为溢出。数值型数据的表示224浮点数表示若阶码可以取不同的数值,并与尾数一并表示,称这种表示法为数的浮点表示法。这样的数称为浮点数。其中阶码P用整数表示,可为正数或负数。用一位二进制数Pf表示阶码的符号位,当Pf=0时,表示阶码为正数;当Pf=1时,表示阶码为负数。而尾数S一般为纯小数,用定点小数来表示,同样用Sf表示尾数的符号,Sf=0表示尾数为正数;Sf=1表示尾数为负数。PfPP...PSfSSS.......S↓阶码↓尾数阶码符号尾数符号数值型数据的表示325机器数与真值“符号化”的数称为机器数,规定:①数的符号采用二进制代码化,“0”代表“+”,“1”代表“-”。通常符号代码放在数据的最高位。②小数点隐含在数据的某一固定位置上,不占用存储空间。③每个机器数所占用的二进制位数固定,受机器硬件规模的限制,与机器字长有关。而符号没有数码化的数称为数的真值。机器数与真值26原码原码是一种简单的机器数表示法。它规定正数符号用0表示,负数符号用1表示,数值部分即为该数的本身,如:X=+100101,其原码表示为[X]原=00100101。X=—100101,其原码表示为[X]原=10100101。原码的特点:⑴表示直观、易懂,与真值的转换容易。⑵0有两种不同的表示形式,给使用带来了不便。:[+0]原=00…0[-0]原=10…0⑶加减运算复杂。27补码指导思想:把负数转化为正数,使减法变成加法,从而使正负数的加减运算转化单纯的正数相加运算。转换方法:已知[X]原,则正数X的补码为其本身;负数X的补码等于它的原码[X]原除符号位外“求反加1”。若已知负数的补码[X]补,也可以通过对[X]补除符号位外“求反加1”得到它的原码[X]原。X=-1010101[X]原=11010101[X]补=10101011而[+0]补=00…0[-0]补=00…0X=1010101[X]原=01010101[X]补=0101010128反码反码通常作为求补过程的中间形式。给定一个二进制数X,其反码的求解方法是:①正数的反码与原码相同。②负数的反码为:符号位为1,其余各位取反。在反码表示中,0的表示法不唯一:[+0]反=00000000[-0]反=1111111129数值原码反码补码00000000000000000000000000100000001111111100000000+1000000010000000100000001-1100000011111111011111111-15100011111111000011110001-127111111111000000010000001-128————10000000常用原码、补码、反码的对照表30字符非数值型数据的表示计算机所处理的非数值型数据包括字符数据、图形数据、音频数据、视频数据等。字符计算机只能识别1和0,因此在计算机内表示的数字、字母、符号等都要以二进制数码的组合来代表,这就是二进制编码。根据不同的用途,有各种各样的编码方案,较常用的有ASCII码、BCD码、汉字编码等。31ASCII码美国标准信息交换码(ASCII码),由国际标准组织(ISO)确定为国际标准字符编码。ASCII码采用七位二进制位编码,共可表示128个字符,它包括26个英文字母大小写符号、数字、标点符号、专用符号及控制符号,计算机中常以8位二进制即一个字节为单位表示,因此ASCII码最高位取0。而扩展ASCII码最高位为1。32低位/高位0000010100111001011101110000NULDLESP0@P`p0001SOHDC1!1AQaq0010STXDC2“2BRbr0011EXTDC3#3CScs0100EOTDC4$4DTdt0101ENQNAK%5EUeu0110ACKSYN&6FVfv0111BELETB‘7GWgw1000BSCAN(8HXhx1001HTEM)9IYiy1010LFSUB*:JZjz1011VTESC+;K[k{1100FFFS,L\l