数的进制与进制间的转换
进位计数制
一个数可以用若干个数位的组合来表示,如果我们从0开始计数以得到各种数值,就存在着一个由低位向高位进位的问题,这种按一定进位方式计数的数制叫做进位计数制,简称进位制。进位制涉及两个基本的概念:基数和各位数的权。它们是构成某种进位制的两个基本要素。
基数是指进位制中会产生进位的数值,它等于每个数位中所允许的最大数码值加1,也就是各数位中允许选用的数码个数。例如十进制,每个数位允许选用0~9这十个数码中的一个,基数为10.或者说,各数位中允许选用的最大数码值为9,再加1就会逢十进位,基数为10.
一个数码处于不同的数位上,它所代表的数值不同。例如十进制中各位的1表示100,而百位上的1表示102,因此,在进位制中每个数码所表示的数值等于该数码本身的值乘以一个与它所在数位有关的常数,这个常数称为该位的位权,简称为权。显然,各数位的权值是不同的。例如十进制数,从小数点往左,整数部分的位权依次为:100,101,102,……………;从小数点往右,小数部分依次为:10-1,10-2,…… 。
不难看出,相邻两位的权值之比等于基数值,例如102/101=10.
计算机中的进位制
计算机硬件采用二进制,即0和1表示数字。但为了书写方便,在编程时采用八进制或十六进制。为了跟日常使用的十进制衔接,计算机中也部分采用二-十进制。
1.二进制
在二进制中,每个数位仅能选择0,1这两个数码中的一个,逢二进一或借一当二,基数为2.
在计算机中,二进制数以代码序列的形式存储、运算、传送,其通式为:
XnXn-1.....X0.X-1X-2X-M
其中,整数n+1位,X0的为权位20,Xn的位权为2n.小数m位,X-1的位权是2-1,X-m的位权是2-m。
但在计算某二进制数的数值时,或需要进行算法推导时,常将它展开为多项式。这种形式能表明各数位之间的关系,可由此寻找各种进位制之间的转换规律。二进制数多项式的通式为:
(s)2=Xn2n+Xn-12n-1+.......+X020+X-12-1+X-22-2+......+X-m2-m
例:(101.01)2=1*22+0*21+1*20+0*2-1+1*2-2=(5.25)10
2.八进制
在八进制中,每个数位可选用的数码有8个:0~7,逢八进一,基数为8.
例:(703.64)8=7*82+0*81+3*80+6*8-1+4*8-2=(451.8125)10
计算机内部,每位八位进制数可以很方便的转换为3位二进制数。
例:(703.64)8=(111 000 011.110 100)2
3.十六进制
在十六进制中,每个数位可选用的数码有16个:0~15,书写为0,1...8,9,A,B,C,D,E,F,逢十六进一,基数为16.
例:(BC3.89)2=11*162+12*161+3*160+8*16-1+9*16-2≈(3011.535)10
计算机内部,每位十六位进制数可以很方便的转换为4位二进制数。
例:(BC3.89)16=(1011 1100 0011.1000 1001)2
进制间的转换
1、十进制整数转为二进制整数
使用减权定位法或除基取余法
2、十进制小数转为二进制小数
使用减权定位法或乘基取整法
3、二进制整数转为十进制整数
按权相加法或逐次乘基相加法
4、二进制小数转为十进制小数
按权相加法或逐次除基相加法