首页 理论教育 计算机中的信息表示

计算机中的信息表示

时间:2023-02-24 理论教育 版权反馈
【摘要】:人们在日常生活中最熟悉的是十进制数,计算机进行数据处理时,数据在计算机内部都是以二进制代码形式流通与处理的,处理结束后,处理结果仍将以人们熟悉的形式输出。在与计算机打交道时,不仅会接触到二进制,而且还会接触八进制、十六进制等。十进制数“2”用二进制数表示为“10”。逻辑乘法有“与”的意义,它表示仅当A和B同时为1时,其逻辑乘积才为1,其他情况都为0。

1.二进制数字世界

人们在日常生活中最熟悉的是十进制数,计算机进行数据处理时,数据在计算机内部都是以二进制代码形式流通与处理的,处理结束后,处理结果仍将以人们熟悉的形式输出。在与计算机打交道时,不仅会接触到二进制,而且还会接触八进制、十六进制等。但无论哪种数制,其共同之处都是进位计数制。

二进制数由0和1两个数码组成,每位计满2,就向高位进1,即逢二进一。十进制数“2”用二进制数表示为“10”。为了表示区别,二进制数常用下标“2”或在数字的后面加上一个英文字母“B”来表示,如(10)2或10B。

2.R进制转换成十进制

十进制展开方法:(256.47)10=2×102+5×101+6×100+4×10-1+7×10-2

二进制数若转换成十进制数,可以参考十进制数的展开,从小数点向左依次为1(20)、2(21)、4(22)、8(23)、16(24)、32(25)、64(26)、128(27)、256(28)、512(29)、1024(210)……从小数点向右依次为0.5(2-1)、0.25(2-2)、0.125(2-3)……。例如,

alt

如果数制只采用R个基本符号,则成为基R进制,R称为数制的基数,而数制中每一个固定位置对应的单位值为权。如十进制的基数R等于10,而101、102、103……就是十进制的权,同样二进制的基数R等于2,而20、21、22……就是二进制的权。

基数为R的数字,只要将各位数字与它的权相乘,其积相加,和数就是十进制数。如八进制数:


(3506.2)8=3×83+5×82+0×81+6×80+2×8-1=1862.25


从上面几个例子可以看出,当从R进制转换到十进制时,可以把小数点作为起点,分别向左、右两边进行,即对其整数部分和小数部分分别转换。对于二进制来说,只要把数位是1的那些位的权值相加,其和就是等效的十进制数。因此,二、十转换是最简便的,也是最常用的一种。

3.十进制转换成R进制

将十进制数转换为基数为R的等效表示时,可将此数分成整数与小数两部分分别转换,然后再拼接起来即可实现。

十进制整数转换成R进制的整数,可用十进制数连续地除以R,其余数即为R进制的各位系数。此方法称之除R取余法。

例如,将(57)10转换为二进制数


57÷2=28……1

28÷2=14……0

14÷2=7……0

7÷2=3……1

3÷2=1……1

1÷2=0……1


最后得到的余数1是最高位,最早得到的余数是整数最低位,所以(57)10=(111001)2

十进制小数转换成R进制时,可连续地乘以R,直到小数部分为0,或达到所要求的精度为止(小数部分可能永不为零),得到的整数即组成R进制的小数部分,此法称为“乘R取整”。

例如,将(0.3125)10转换成二进制数。


0.3125×2=0.625……整数部分为0

0.625×2=1.25……整数部分为1

0.25×2=0.5……整数部分为0

0.5×2=1.0……整数部分为1


第一次得到的整数部分数值是小数点后第一位,后面得到的依次往后排,所以(0.3125)10=(0.0101)2

要注意的是,十进制小数常常不能准确地换算为等值的二进制小数(或其他R进制数),有换算误差存在。

例如,将(0.5627)10转换成二进制数。


0.5627×2=1.1254……其中整数部分为1

0.1254×2=0.2508……其中整数部分为0

0.2508×2=0.5016……其中整数部分为0

0.5016×2=1.0032……其中整数部分为1

0.0032×2=0.0064……其中整数部分为0

0.0064×2=0.0128……其中整数部分为0


此过程会不断进行下去(小数位达不到0),因此只能取到一定精度:(0.5627)10=(0.100100)2

若将十进制数57.3125转换成二进制数,可分别进行整数部分和小数部分的转换,然后再拼在一起:(57.3125)10=(111001.0101)2

4.二、八、十六进制的相互转换

十六进制数是以16为基数的计数制,数码有0、1、2、……9、A、B、C、D、E、F共16个,这里,A、B、C、D、E、F分别对应于十进制数中的10、11、12、13、14、15。十六进制数在运算时是“逢十六进一、借一当十六”。十六进制数的各位值转换成十进制数时,基数R为16,即1(160)、16(161)、256(162)、4096(163)……

例如,(3AB)16=3×162+A×161+B×160=3×256+10×16+11×1=(939)10

二、八、十六进制的相互转换在应用中占有重要的地位。由于这三种数制的权之间有内在的联系,即23=8,24=16,因而它们之间的转换比较容易,即每位八进制数相当于三位二进制数,每位十六进制数相当于四位二进制数。在转换时,位组划分是以小数点为中心向左、右两边延伸,中间的0不能省略,两头不够时可以补0。

【例2-1】将(1011010.10)2转换成八进制和十六进制。

001  011  010.  100

 1   3   2.   4

所以(1011010.10)2=(132.4)8

0101 1010. 1000

 5   A.  8

所以(1011010.10)2=(5A.8)16

【例2-2】要将(F7.28)16变为二进制数。

F   7.    2   8

1111 0111.  0010 1000

所以(F7.28)16=(11110111.00101)2

【例3-3】要将八进制数25.63转换为二进制数。

2  5.  6  3

10 101. 110 011

所以(25.63)8=(10101.110011)2

5.数字间的逻辑运算

二进制数的逻辑运算按位进行,逻辑加法(或运算)通常用符号“+”或“∨”表示,规则为0∨0=0,0∨1=1,1∨0=1,1∨1=1。当逻辑变量有一个为1,或两个都为1,其逻辑加的结果为1;只有逻辑变量同时为0时,结果才为0。

逻辑乘法(与运算)通常用符号“*”或“∧”或“·”表示,规则为0∧0=0,0∧1=0,1∧0=0,1∧1=1。逻辑乘法有“与”的意义,它表示仅当A和B同时为1时,其逻辑乘积才为1,其他情况都为0。

逻辑非运算通常用符号“┐”表示,它是单目运算符,只对一个数值进行求反操作,比如┐0=1,┐1=0。

还有等价、异或、同或等逻辑运算,读者有兴趣可查阅相关资料。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈