您现在的位置是:首页>文章详情 文章详情 进位计数制及其转换 yangxshn 2022-03-07 1586 ### 一、定义 在采用进位计数的数字系统中,如果只用r个基本符号表示数值,则称其为r进制(Radix-r Number System),r称为该数制的基数(Radix)。不同数制的共同特点如下: 1. 每一种数制都有固定的符号集。例如,十进制数制的基本符号有是个:0,1,2,...,9。二进制数制的基本符号有两个:0和1。 2. 每一种数制都使用位置表示法。即处于不同位置的数符所代表的值不同,与它所在位置的权值有关。例如,十进制数 1234.55 可表示为: $$1234.55=1 \times 10^3 + 2 \times 10^2 + 3 \times 10^1 + 4 \times 10^0 + 5 \times 10^{-1} + 5 \times 10^{-2}$$ 计算机中常用的进位数制有二进制、八进制、十进制和十六进制,如下表所示: | 进位制 | 二进制 | 八进制 | 十进制 | 十六进制 | | ------------ | ------------ | ------------ | ------------ | ------------ | | 规则 | 逢二进一 | 逢八进一 | 逢十进一 | 逢十六进一 | | 基数 | r=2 | r=8 | r=10 | r=16 | | 数符 | 0,1 | 0,1,2,...,7 | 0,1,2,...,9 | 0,1,2,...,9,A,B,...,F | | 权 | 2^i | 8^i | 10^i | 16^i | | 形式表示符 | B | O | D | H | ### 二、计数制转换 #### 2.1. 十进制与二进制的相互转换 十进制数转换成二进制数时,整数部分和小数部分分别转换,然后再合并。十进制整数转换为二进制整数的方法是 “除 2 取余”;十进制小数转换为二进制小数的方法是“乘 2 取整”。 例如:把十进制数175.71875转换为相应的二进制数。 **整数部分:** |算式 | 商 | 余数 | | ------------ | ------------ | ------------ | | 175/2 | 87 | 1 | | 87/2 | 43 | 1 | | 43/2 | 21 | 1 | | 21/2 | 10 | 1 | | 10/2 | 5 | 0 | | 5/2 | 2 | 1 | | 2/2 | 1 | 0 | | 1/2 | 0 | 1 | 十进制 175 可以表示为 10101111 **小数部分:** | 算式 | 乘积 | | ------------ | ------------ | | 0.7185x2 | 1.4375 | | 0.4375x2 | 0.875 | | 0.875x2 | 1.75 | | 0.75x2 | 1.5 | | 0.5x2 | 1.0 | 十进制 0.71875 可以表示为 0.10111 因此,175.71875 可以表示为 10101111.10111 将十进制数写成按二进制数权的大小展开的多项式,按权值从高到低依次取各项的系数就可得到相应的二进制数。 $$ 175.71875=2^7+2^5+2^3+2^2+2^1+2^0+2^{-1}+2^{-3}+2^{-4}+2^{-5}=10101111.10111 $$ 二进制数转换成十进制数的方法是:将二进制数的每一位数乘以它的权,然后相加,即可求得对应的十进制数。 例如:把二进制数100110.101转换成相应的十进制数。 $$ 100110.101=1 \times 2^5 + 0 \times 2^4 + 0 \times 2^3 + 1 \times 2^2 + 1 \times 2^1+ 1 \times 2^0 + 1 \times 2^{-1} + 0 \times 2^{-2} + 1 \times 2^{-3}= 32 + 0 + 0 + 4 + 2 + 0 + 0.5 + 0 + 0.125= 38.625 $$ #### 2.2. 八进制与十进制、二进制的相互转换 八进制计数制的基本符号为:0,1,2,...,7。 十进制数转换为八进制数的方法是:对于十进制整数采用“除 8 取余”的方法转换为八进制整数;对于十进制小数则采用“乘 8 取整”的方法转换为八进制小数。 二进制数转换成八进制数的方法是:从小数点起,每三位二进制位分成一组(不足三位时,在小数点左边时左边补0,在小数点右边时右边补0),然后写出每一组的等值八进制数,顺序排列起来就得到所要求的八进制数。 将二进制数10101111.10111转换为相应的八进制数。 $$ 10101111.10111 = 010 101 111.101 110 = 257.56 $$ 二进制、八进制数和十六进制数之间的对应关系: | 二进制 | 八进制 | 二进制 | 十六进制 | 二进制 | 十六进制 | | ------------ | ------------ | ------------ | ------------ | ------------ | ------------ | | 000 | 0 | 0000 | 0 | 1000 | 8 | | 001 | 1 | 0001 | 1 | 1001 | 9 | | 010 | 2 | 0010 | 2 | 1010 | A | | 011 | 3 | 0011 | 3 | 1011 | B | | 100 | 4 | 0100 | 4 | 1100 | C | | 101 | 5 | 0101 | 5 | 1101 | D | | 110 | 6 | 0110 | 6 | 1110 | E | | 111 | 7 | 0111 | 7 | 1111 | F | #### 2.3. 十六进制与十进制、二进制的相互转换 在十六进制计数制中,r=16,基本符号为:0,1,2,...,9,A,B,...,F。 十进制数可以转换为十六进制数的方法是:十进制数的整数部分“除16取余”,十进制数的小数部分“乘16取整”。 由于一位十六进制数可以用四位二进制数来表表示,因此二进制数与十六进制数的相互转换就比较容易。二进制数转换成十六进制数的方法是:从小数点开始,每四位二进制数为一组(不足四位时,在小数点左边时左边补0,在小数点右边时右边补0),将每一组用相应的十六进制数符来表示,即可得到正确的十六进制数。 将二进制数 10101111.10111 转换为相应的十六进制数。 $$ 10101111.10111 = 10101111.10111000 = AF.B8 $$