1.5.1 数的进位制及其转换
1.数的进位制
通常,把“逢几进一的数”就称为几进制的数。如常用的十进制数就是逢十进一的数。二进制数就是逢二进一的数。其实,生活中,人们会用到许多的进位制,例如,“半斤八两逢十六两进为一斤;60s进为1min;12个月进为1年;两只手套或袜子称一双,等等。
每种进位制都有自己的数符:
十进制D:0,1,2,3,4,5,6,7,8,9。
二进制B:0,1。
十六进制H:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F。
八进制Q:0,1,2,3,4,5,6,7。
前面提到,计算机中使用的数都是二进制数,但书写和表示时还经常用到八进制、十六进制数。实际上,不同进位制数仅仅是数的不同表示形式而已,它们并无本质差别,其间是可以互相转换和比较的。例如:
2.计算机内采用二进制数的优点
1)容易实现
二进制只有两个数符“0”和“1”,用两种物理状态的电子元件来表示两个数码容易实现。例如,电灯的“亮”和“熄”,开关的“开”和“关”,电压的“高”和“低”,晶体管的“导通”和“截止”,磁芯的两种正负磁性。它们都能表示二进制数码的“0”和“1”,而十进制有10个数码,要用10种物理状态的电子元件来表示10个数码,比较难实现。
2)运算简单
用二进制表示的数运算起来特别简单。
二进制加法规则为:0+0=0,0+1=1,1+0=1,1+1=10四种。
十进制加法规则为:0+0~9,0+1~9,……,9+0,……,9+9,共100种。很显然,二进制的运算比十进制的运算要简单得多。
特别是仅有的两个符号0、1正好对应了逻辑值的“真”(1)与“假”(0)和数值的“正”(0)“负”(1),从而为计算机实现逻辑运算判断及数值的正负运算提供了极大的方便。
3)节省设备
二进制数只有两个数符“0”“1”,而十进制数有10个数符“0~9”,因此,二进制用电子元件来表示较为简单和节省设备。
4)可靠性高
由于电压的高低、电流的有无等都是一种跃变而非渐变,两种状态分明,所以0和1两个数的传输和处理抗干扰性强,不易出错,信息可靠性高。
3.不同进制数之间的转换
要将十进制数转换成n(二、八、十六)进制的数,只须将此十进制数反复除以n(2、8、16),直至商为零止,然后将所得余数从末尾向前排列起来即可(整数的转换规则)。
要将其他进制的数转换成十进制数,只须将此进制数按多项式展开求和即可。例如,987=9×102+8×101+7×100(每位上的数乘进位制的位数次方“位权”,位从右向左依次为0、1、2、…)。
1)十进制数与二进制数之间的转换
整数部分除2取余法,小数部分乘2取整法。
(94)10=(1011110)2(1011001)2=(89)100.625D=(0.101)B
(1011001)2=1×26+0×25+1×24+1×23+0×22+0×21+1×20=64+0+16+8+0+0+1
=(89)10
0.101B=1×2-1+0×2-2+1×2-3=0.625D
需要特别指出的是:十进制小数不一定能够精确地转换成二进制小数。
2)十进制数与八进制数之间的转换
(177)8=1×82+7×81+7×80=64+56+7=(127)10
3)十进制数与十六进制数之间的转换
(94)10=(5E)16
(AB)16=10×161+11×160=160+11=(171)10
4)二、八、十六进制数之间的转换
(1)二进制数与八进制数之间的转换:二进制和八进制之间是3位的关系,即3位二进制可以表示成1位八进制,1位八进制可以表示成3位二进制。其对应关系是:
(2)二进制数与十六进制数之间的转换:二进制和十六进制之间是4位的关系,即4位二进制可以表示成1位十六进制,1位十六进制可以表示成4位二进制。可以根据这一关系对它们进行互换。其对应关系是:
(3)八进制数与十六进制数之间的转换:八进制和十六进制之间的转换可以通过二进制作为纽带。
4.逻辑运算
逻辑代数是英国数学家、逻辑学家乔治·布尔建立的。初等代数中研究的是数和数的运算,逻辑代数中研究的是命题和命题的运算。
命题是可以“演算的”,两个命题A、B,如果用“”“∧”“∨”分别表示“非运算(否定)”“与运算(逻辑乘、合取)”“或运算(逻辑加、析取)”,真、假分别用T、F(1、0)表示,则它们的“演算”结果见表1-3。
表1-3 命题运算结果表
从表中可以看出:
逻辑乘法:1∧1=1,1∧0=0,0∧1=0,0∧0=0。表示只有两个逻辑值同时为1时,结果才为1,否则结果为0。
逻辑加法:1∨1=1,1∨0=1,0∨1=1,0∨0=0。表示只要有一个逻辑值为1,结果就为1,否则为0。
逻辑非:。
逻辑异或:1⊕1=0,1⊕0=1,0⊕1=1,0⊕0=0。表示两个逻辑值相异(不同)时,结果为真或1,否则为假或0。
例如:两个二进制数1101和1110进行逻辑乘和逻辑加的运算其计算如下:
在各种混合表达式运算中,一般的运算顺序为:算术运算、关系运算、逻辑运算。
逻辑代数已在工程技术上得到了广泛的应用,是电子计算机设计中不可缺少的有力工具。如逻辑乘、逻辑加、逻辑非的运算规则,就相当于计算机中的“与”“或”“非”门。
除数值在计算机中转换为二进制数外,数值的“+”“-”符号可分别用“0”“1”表示,从而使符号(正负号)数字化,并且通过采用数的补码形式,使数字化后的符号能够直接参与运算,加上对数的约定(使用定点数和浮点数方式),这样就解决了所有数值的二进制化问题,并可在计算机中方便地进行二进制运算。