您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > 第2章 计算机中信息的表示方法
第2章计算机中信息的表示方法2.1概述•计算机要对各种信息或数据进行处理,首先遇到的问题是必须将各种信息以计算机可以识别的方式表示,并且以一定的形式存储在计算机中。现代计算机大都是以二进制表示的数字计算机。•数据表示研究的是计算机硬件能够直接识别,可以被指令系统直接调用的数据类型。国际标准化组织(ISO)对数据和信息都进行了专门定义:第2章计算机中信息的表示方法•其中数据定义是:“数据是对事实、概念或指令的一种特殊表达形式,这种特殊表达形式可以用人工的方式或自动化装置进行通信、翻译转换或者进行加工处理”。•数字、文字、符号、图形、图像、声音都包括在数据范畴中。数据的概念要比人们日常生活中理解的“可以比较其大小的数值”广泛的多。第2章计算机中信息的表示方法•信息的定义是:“信息是对人有用的数据,可能影响人们的行为和决策的数据”。•计算机对信息进行处理,实质上是由计算机对数据进行加工处理得到对人类有用的信息过程,不同的部门根据得到的信息产生的决策和行动也往往不同。•在很多场合,数据和信息往往并不严格加以区别。数据数值数据非数值数据文字、字符图形、图像声音数据类型无符号数有符号数2.2数据信息的机内表示方法2.2.1数值数据在机内的表示•数值数据是计算机进行算术运算所使用的操作数,它有大小,可以在数轴上表示出来。•数值数据又分有符号数和无符号数,无符号数常用来表示存储单元的物理地址。•表示一个数值数据有三个基本的要素:①进位计数制;②小数点的表示;③符号的表示。•2.2.2进位计数制及相互转换•1.进位计数制•按照一定进位方法进行计数的数制称为进位计数制,简称进制。•在日常生活中,人们习惯使用的进制是十进制(Decimal),但在计算机内部采用的进制却是二进制(Binary)。由于用二进制表示的数的位数长,书写不便,为了便于书写常采用八进制(Octal)和十六进制(Hexadecimal)作为中间进制。•要将一个数表示成计算机可以识别的二进制数,首先必须将各种不同进制的数转换成二进制数。一个任意进制可以表示为:•S=∑Ki×RKi={0,1,2,…R-1}(1)基数•进制是以表示数值可以选用基本数码的个数来命名的,计数制允许选用的基本数码的个数称为基数(简称基),用R表示。i(2)权•在进位计数制中,同一个数码处在数的不同位置上,它所代表的数值的大小是不同的。每一个数位被赋于R的数值称为位权,简称权。(3)进位计数制的按权展开式•在进位计数制中,每个数位的数值等于该位数码与该位的权之乘积,若用Ki×R表示第i位的数码,则该位的数值为KiR。各种进位制的数都可以写成按权展开的多项式和的形式,一个以R为基数的数S可表示为:iii•S=∑Ki×R=Kn×R+Kn-1×R……+K1×R+K0×R+K-1×R+K-2×R+……+K-m×R=S1.S0•其中:S的整数部分:•S1=Kn×R+Kn-1×R……+K1×R+K0×RS的小数部分:•S0=K-1×R+K-2×R+……K-m×Rinn-110-1-2-mnn-110-1-2-m2.进位计数制之间的相互转换(1)二进制数、八进制数、十六进制数转换成十进制数•二进制、八进制、十六进制数转换成十进制数常用的方法是“按权展开转换法”,具体做法是二进制、八进制、十六进制数按照权展开,然后再按照十进制求和,结果就是所要的十进制数。•【例2-1】将二进制数1100.11转换成十进制。•(1100.11)2=2+2+2+2=8+4+0.5+0.25=12.7532-1-2•【例2-2】将八进制数266.2转换成十进制。•(266.2)=2×8+6×8+6×8+2×8=128+48+6+0.25=182.2521-108•【例2-3】将十六进制数0A3.4转换成十进制。•(0A3.4)=10×16+3×16+4×16=160+3+0.25=163.251610-1(2)十进制数转换成二进制数(3)十进制实数转换成二进制实数•十进制实数既有整数部分,又有小数部分,其转换方法是将整数部分和小数部分分别转换,然后将这两部分拼起来即可。•【例2-8】将十进制数63.6875转换成二进制数•(63)10=(111111)2•(0.6875)10=(0.1011)2•所以(63.6875)10=(111111.1011)2(4)二进制数转换成八进制数,十六进制数•因为八、十六进制的基数分别为8=2和16=2,所以二进制数转成八进制数和十六进制数时非常简单,三位二进制数对应一位八进制数,四位二进制数对应一位十六进制数。①二进制数转换到八进制数•二进制数转换八进制数的方法是:从小数点的位置开始,整数部分向左、小数部分向右,每三位二进制数分为一组,对应一位八进制数,不足三位者补零,整数在高位补,小数在末位补。34【例2-9】将二进制数10110101.1011转换为八进制数(10110101.1011)2=(010110101.101100)2=(265.54)8②二进制数到十六进制数的转换•二进制数到十六进制数的转换方法与二进制数到八进制数转换方法类似,每四位二进制数对应一位十六进制数。【例2-10】将二进制数11110110101.10101转换到十六进制数•(11110110101.10101)2=(011110110101.10101000)2=(7B5.A8)16(5)八进制数、十六进制数转换成二进制数①八进制数转换成二进制数•八进制数转换成二进制数的方法是:每一位八进制数用相应的三位二进制数代替。其中整数中的最高位,小数部分的末位0可以省去不写。【例2-11】将八进制数(75.26)8转换二进制数(75.26)8=(111101.010110)2=(111101.01011)2②十六进制数转换成二进制数•十六进制数转换成二进制数的方法是:每一位十六进制数用相应的四位二进制数代替。其中整数中的最高位,小数部分的末位0可以省去不写。【例2-11】将十六进制数(48.A)16转换二进制数•(48.A)16=(01001000.1010)2=(1001000.101)2=(110.5)8•各进制数之间的转换如图所示。八进制十六进制十进制二进制一位八进制表示三位二进制数据进制之间相互转换示意图四位二进制表示一位十六进制一位十六进制表示四位二进制三位二进制表示一位八进制按照权展开,再按照十进制相加整数部分除以2取余小数部分乘以2取整•从上面例2-11可以看出,同一数值表示成不同进制形式时,基数R越大,数码就越短,字码形式越多,分辨率越高。但到目前为止,计算机内部信息都是采用二进制形式表示,这主要因为:•二进制形式便于物理元件的实现•二进制数只有“0”和“1”两个数字,因此,可以用物理元件的两种稳定状态来表示。例如:晶体管的导通和截止,只要规定其中一个状态为1,另一个状态就为0,就可以表示二进制数了。要找到有十种稳定状态的物理元件表示十进制数是很困难的。•二进制运算规则简单•十进制数作乘法运算时,需用九九乘法表,而二进制乘法运算规则只有四个:•0×0=0;0×1=0;1×0=0;1×1=1•二进制数运算方法简单,实现运算的电路也相应简单•可以用二进制数码“0”、“1”表示真、假逻辑量,可使计算机方便地进行逻辑运算。•二进制也有书写冗长,阅读不便的缺点,所以,人们在书写和表达时常用既能克服二进制缺点,又能与二进制直接转换的八进制和十六进制作为中间过渡进制。2.2.3数的符号表示•数值数据又可以分为有符号数和无符号数,无符号数常用来表示存储器单元的地址。由于计算机中只有“0”“1”字符,所以符号也必须用“0”“1”来表示,即数字化。1.无符号数和有符号数•机器数:数在计算机中的二进制表示形式称为机器数。机器数通常有两种形式,无符号数和有符号数。•无符号数:机器数的所有二进制位都用来表示数值,称无符号数。一般在全部正数运算且出现负值结果的场合可以省略符号位,使用无符号数表示,常用于表示地址。•有符号数:将数的符号也数值化的数(连同符号一起用二进制数来表示的数)称为有符号数。通常用“0”表示“+”号,“1”表示“−”号,符号放在二进制数的最高位,称为符号位。•真值:因为符号在计算机中占据一位,机器数的形式值就不等于真正的数值,为了区别起见,我们把带符号位的机器数所对应的数值称为机器数的真值。2.有符号数的表示•在计算机中有符号数的表示是将符号和数一起进行编码,常用的编码有原码、补码和反码。在这些编码中,通常用一位(一般是最高位)来表示符号,剩余的位数表示数值部分的编码。(1)原码表示法•在原码表示法中,最高位为符号位,其余位为数的绝对值。①原码的定义(机器字长为n+1,其中一位符号位)②原码的求法•原码表示直观,与真值的转换方便,只要将真值符号位的“+”用“0”,“-”用“1”表示,剩下的位数就是真值的绝对值了。•用原码表示的机器数进行乘除运算比较方便,只要将数值部分直接乘除,符号位相异或就可以获得正确的结果。•但是进行加减运算时,既要考虑数的绝对值大小又要考虑数的符号,比较麻烦。•原码的另一个缺点是零的表示不是惟一的(假设机器字长为4):•[+0]原=0.000[-0]原=1.000(小数)•[+0]原=0000[-0]原=1000(整数)(2)补码表示法•为了克服原码表示法的上述两个缺点,引入了补码的概念,补码表示的数在进行加减运算时,符号位可以看成数值一起参加运算,只要不溢出(数的大小超过机器数表示的范围称溢出)结果都是正确的,从而简化了加减法运算规则,简化了运算器的设计。①模和同余的概念•模:一个计量器的容量或一个计量单位叫做模或模数,记作M。如四位二进制数它的模M=2=16。•同余:设a,b两整数被同一正整数M去除而余数相同,则称a、b对M同余。记为a=b(modM)。•如:9/12=(12-3)/12=1+(-3)/12即9和-3是关于模12是同余的。具有同余关系的两个数具有互补关系,即-3的补码是9。这样求一个负数的补码就将模加上该负数即可12+(-3)=9。4②补码的定义(机器字长为n+1,其中一位符号位)③求法•从补码的定义可以看出,正数的补码和原码相同,都等于真值。负数的补码可以用定义来求,也可以用更直观的方法来求:原码除符号位外按位取反再在最低位加1(符号位用1表示,数字位直接取反再在最低位加1)。【例2-12】求X=-1100的补码(机器字长为5位)[X]补=10011+1=10100【例2-13】求X=-0.1100的补码(机器字长为5位)[X]补=1.0011+0.0001=1.0100•补码求真值:补码除符号位外按位取反再在最低位加1得原码,然后由原码得真值。【例2-14】求[X]补=10100的真值除符号位外按位取反再在末位加1=11011+1=11100•真值X=-1100④补码的表示范围(机器字长为n+1位)•小数:-1≤X≤1-2•整数:-2≤X≤2•在补码的定义中负数的定义域扩大了一个数,且不再有负零。•补码的零只有一种表示:•[0]补=[-0]补=[+0]补=0000-nn-1n(3)反码的表示法•反码一般用来作为原码求补码或补码求原码的工具,计算机中很少采用反码进行数的运算。•①反码定义:•根据定义,正数的反码和原码相同,负数的反码将符号位用“1”表示,数值位按位取反即可。反码的表示范围与原码的表示范围是一样的。(4)三种码的比较•最高位表示符号位,“1”表示负数,“0”表示正数。•三种码的正数表示相同。•负数的原码、补码和反码符号位用“1”,原码的数值部分是真值的数值部分,补码是真值的数值“按位取反末位加1”,反码是“按位取反”。•原码适合乘除运算。补码适合加减运算,在运算过程中符号位和数值位一起参加运算。只要不超过数的表示范围,结果都是正确的。(这一点在第3章中讨论)•原码和反码所能表示的数是关于0对称的,整数±(2),小数为±(1-2)•补码在负数上多一个最小负数,•即整数:-2,小数为-1。•原码和反码有±0,而补码中0的表示是惟一的。nn-1-n2.2.4数的小
本文标题:第2章 计算机中信息的表示方法
链接地址:https://www.777doc.com/doc-4019241 .html