1.数制
数制是用一组固定的符号和统一的规则来表示数值的科学计数法。学习数制须先掌握数码、基数和位权3个概念。
数码:数制中表示基本数值大小的不同数字符号。例如,十进制有10个数码,分别为0、1、2、3、4、5、6、7、8、9;二进制有0和1两个数码。
基数:数制所使用数码的个数。例如,二进制的基数为2,十进制的基数为10。
位权:数制中某一位上的1表示数值的大小(所处位置的权值)。例如,十进制的123,1的位权是100,2的位权是10,3的位权是1。
计算机学习中常用的数制有以下三种:
(1)十进制 ND
符号集:0~9
规则:“逢十进一,借一当十”;
十进制数可用加权展开式表示,例如:
123=1×102+2×101+3×100
其中,10为基数,0~9为各位加权数,其一般表达式为:
ND=dn-1·10n-1+dn-2·10n-2+····+d1·101+d0·100
(2)二进制 NB
符号集:0、1;
规则:“逢二进一,借一当二”;
二进制数可用加权展开式表示,例如:
101B=1×22+0×21+1×20
其中,2为基数,0和1为各位加权数,其一般表达式为:
NB=bn-1·2n-1+bn-2·2n-2+····+b1·21+b0·20
(3)十六进制 NH
符号集:0~9、A~F;
规则:“逢十六进一,借一当十六”;
十六进制数可用加权展开式表示。例如:
F9BH=15×162+9×161+11×160
其中,16为基数,0~15为各位加权数,其一般表达式为:
NH=hn-1·16n-1+hn-2·16n-2+····+h1·161+h0·160
在阅读和书写不同数制的数时,如果不在每个数上外加一些辨认标记就会混淆,无法分清。通常使用的标记方法有两种:
一种是把数加上方括号,并在方括号右下角标注数制代号,如[110]16、[110]2和[110]10分别表示十六进制、二进制和十进制数;
另一种是用英文字母标记,加在被标记数的后面,分别用B、D、H大写字母表示二进制、十进制、十六进制,如45H为十六进制数、110B为二进制数等,其中十进制中的D标记可以省略。
2.数制间的转换
在计算机内部,数的表示形式是二进制,这是因为二进制只有0和1两个数码,采用晶体管的导通和截止,脉冲的高电平和低电平等都很容易表示。此外,二进制数运算简单,便于用电子线路实现。计算机采用的是二进制,但日常生活中我们更习惯使用十进制,下面我们就来讨论不同数制间的相互转换。
(1)十进制数转换为二进制数。
整数和小数部分需分别进行转换。
①十进制整数转换为二进制整数的常用方法。
用2连续去除要转换的十进制数,直至商为0为止,然后将各次余数按最后得到的为最高位,最先得到的为最低位依次排列,所得到的数便是转换后的二进制数,即“除2取余法”。
【例1.1】将十进制数25转换成二进制数。
解:(www.xing528.com)
因此:(25)10=(11001)2
②十进制小数转换为二进制小数的方法。
用2连续去乘要转换的十进制小数,直到所得积的小数部分为0或满足所需的精度为止。然后将各次整数按最先得到的为最高位、最后得到的为最低位依次排列,所对应的数便是转换后的二进制小数,即“乘2取整”法。
【例1.2】将十进制数0.8125转换成二进制数。
解:
因此:(0.8125)10=(0.1101)2
注意:当十进制小数不能用有限位二进制小数精确表示时,如(0.6)10=(0.10011001…)2,可根据精度要求取有限位二进制小数近似表示。
(2)二进制数转换为十进制数。
将二进制数转换为十进制数,只需按位权展开求累加和即可。
【例1.3】把二进制数11001.0101转换为十进制数。
解:
11001.0101B=1×24+l×23+0×22+0×21+1×20+0×2-1+1×2-2+0×2-3+1×2-4
=16+8+0+0+1+0+0.25+0+0.0625
=(25.3125)10
因此:(11001.0101)2=(25.3125)10
十六进制数转换成十进制数和二进制数转换成十进制数的方法类似,即把要转换的十六进制数按权展开后相加即可。十进制整数转换成十六进制整数与十进制整数转换成二进制整数的方法类似,可以采取“除16取余数法”。十进制小数转换成十六进制小数的方法类似于十进制小数转换成二进制小数,可采用“乘16取整法”。
综上所述,任意进制数与十进制数转换的一般方法如下所示:
(说明:基数为相应进制基本数字符号的个数)
(3)二进制数与十六进制数的相互转换。
二进制数转换成十六进制数比较容易,具体方法如下:
①把二进制数以小数点为界向左向右每4位分成一组,不足4位的用0补齐。
②把每组4位的二进制数转换成1位的十六进制数。
③按从左到右的次序写出转换结果。
【例1.4】把二进制数10110011.0101111转换成十六进制数。
解:
因此:(10110011.0101111)2=(B3.5E)16
十六进制数转换成二进制数的方法更简单,只需从左到右把每位十六进制数写成相应的4位二进制数,并把结果写在一起即可。
【例1.5】把十六进制数3BD.A5转换成二进制数。
因此:(3BD.A5)16=(1110111101.10100101)2 (已去掉最左边没有意义的0)
表1.1中列出了0~15之间的十进制数在二进制和十六进制下的对应值。为了加快数制转换的速度,这张表中的内容应熟记于心。
表1.1 0~15在各种数制下的表示
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。