1、计算机的数字系统谈谈进位制的学习人们最熟悉十进制数系,但是,大部分计算机采用是二进制数系。只有当所有的外界信息被转化为不同的二进制数后,计算机才能对其进行传送、存储和加工处理。当我们在进行程序设计时,与二进制转换比较方便的八进制、十六进制系统表示法也经常使用。所以我们有必要研究一下进位制。一、 进位制的含义进位制是人们为了计数和运算方便而约定的记数系统,如果约定满二进一,就是二位制;满八进一就是八进制;满十六进一就是十六进制等等,也就是说“满几进一”就是几进制,并且几进位的基数就是几。由此可见,无论哪种数系,其共同之处都是进位记数制。二、 几种进位制的特点进制基数进位原则基本符号二进制逢二进一
2、,八进制逢八进一,十进制10逢十进一,十六进制16逢十六进一0,1,2,3,4,5,6,7,8,9,10,A,B,C,D,E,F三、 R进制转换为十进制基数为R的数字,只要将各位数字与基数的幂相乘,再将其积相加,和数就是十进制的数。例1、 把下列R进制的数表示为十进位的数。(1);(2);(3)。分析:当从R进制转换到十进制时,可以把小数点看作为起点,分别向左右两边进行,即对其整数部分与小数部分分别转换。解:(1);(2);(3)。从上面的例题可以看出,对于二进制来说,只要把位数是1的那些基数的幂相加,其和就是等效的十进位数。因此,二位制向十位制转换是最简便的,也是最常用的一种。四、 十进制转
3、换为R进制将十进制数转换的基数是R的等效表示时,可将此数分成整数与小数两个部分分别转换,然后再拼接起来即可。(1)十进制的整数转换成R进制的整数十进制的整数转换成R进制的整数,可用十进制数连续地除以R,其余数即为相应R进制数的各位系数。此方法称为“除R取余”法。例2、(I)把68转换成二进制的数。(II)把68转换成八进制的数。分析:(I)根据二进制“满二进一”的原则,可以用2连续去除67或所得商,然后取余数。(II)类似于二进的原则,八进制是“满八进一”。解:(I)268余数 低位 23402170 28124 022 021 00 1高位把上式中各步所得的余数从下到上排列,得到68。(II
4、)868余数低位884 8 1 1 高位把上式中的各步所得的余数从下向上排列,得到68(2)十进制的小数转换为R进制的小数十进制的小数转换成R进制数时,可连续地乘以R,得到的整数即组成R进制的数,此法称为“乘R取整”法。例3、将十进制数0.3125转换成二进制小数。 高位 解:0.31250.6250.625 1.25 0.25 0.5 0.5 1所以若将十进制数68.3125转换成二进制,就可依据上面的分析,将整数部分与小数部分分别转换,然后再拼在一起即可:。五、 二、八、十六进制的相互转换二、八、十六进制这三种进制的基数的幂是有内在联系的,即每位八进位数相当于三位二进制数(),每位十六进制
5、数相当于四位二进制数。下面我们就结合实例来学习它们之间的转换。(1) 二进制数转换成八进制数二进数从小数点开始,向左右分别按三位为一个单元划分,每个单元单独转换为一个八进制数,这样就完成了二进制向八进位制数的转换。在转换时,位组的划分是以小数点为中心向左右两边延伸,中间的0不能省略,两关不够时可以补0。例如(1000100)(001011010 . 100)(2) 八进制数转换成二进制数八进制数的每一位,分别独立转换成三位二制数。除了左边最高位,其它位如果不足三位的要用0来补足,按照由高位到低位的顺序写在一起,就是相应的二进制数。(3) 二进制数转换成十六进制数同二进制数向八进位制数的转换一样,二进制数从小数点开始,向左右分别按四位为一个单元划分,每个单元单独转换为一个十六进制数,这样就完成了二进制向十六进制数的转换。在转换时,位组的划分是以小数点为中心向左右两边延伸,中间的0不能省略,两关不够时可以补0。例如(01000100)(4) 十六进制数转换成二进制数同八进制数向二进制数的转换一样,十六进制数的每一位,分别独立转换成四位二制数。除了左边最高位,其它位如果不足四位的要用0来补足,按照由高位到低位的顺序写在一起,就是相应的二进制数。例如(11110111)