前言:计算机系统中常用的进位数制有二进制、八进制、十进制、十六进制,对于任何一种进位数制,其表示的数都可以写成按权展开的 多项式。
1. 十进制与二进制的相互转换
1.1 十进制转二进制
十进制数转换为二进制数的方法是:
整数部分和小数部分分别转换,然后合并以小数点为分隔符,整数部分转换方向为按位从右往左;小数部分转换方向为按位从左往右整数部分转换方法为除2取余;小数部分转换方法为乘2取整
例1:把十进制数175.71875转换为相应的二进制数
整数部分:
当算出商为0时,停止计算。将得到的余数部分,依次按照从右往左排列,整数部分为10101111。
小数部分:
当计算出小数部分为0时,停止计算。将得到的乘积部分依次按照从左往右排列小数部分为10111。
即:17510=101011112,0.7187510=0.101112175.7187510=10101111.101112\text{即:}175_{10} =10101111_2\text{,}0.71875_{10} = 0.10111_{2} \\ 175.71875_{10} = 10101111.10111_2 即:17510=101011112,0.7187510=0.101112175.7187510=10101111.101112
1.2 二进制转十进制
二进制数转换为十进制数的做法是:将二进制数的每一位数乘以它的权再相加,即可求得对应的十进制数值。
例2:把二进制数100110.101转换成相应的十进制数
10011.102=1×25+0×24+0×23+1×22+1×21+0×20+1×2−1+0×2−2+1×2−3=32+0+0+4+2+0+0.5+0+0.125=38.625\begin{aligned} 10011.10_2 &= 1 \times2^5 + 0 \times 2^4 + 0 \times 2^3 + 1\times2^2 + 1\times2^1 + 0\times2^0 + 1\times2^{-1} + 0\times2^{-2} + 1\times2^{-3} \\ &=32+0+0+4+2+0+0.5+0+0.125 \\ &=38.625 \end{aligned} 10011.102=1×25+0×24+0×23+1×22+1×21+0×20+1×2−1+0×2−2+1×2−3=32+0+0+4+2+0+0.5+0+0.125=38.625
2. 八进制与十进制、二进制的相互转换
2.1 八进制与十进制互相转换
十进制转八进制的做法和十进制转二进制类似:
整数部分除8取余,小数部分为乘8取整八进制中数据满8进1,所以每个八进制位上的数据只能为0~7
2.2 八进制与二进制互相转换
二进制转换为八进制的方法是:
整数部分:从小数点开始往左,三位成一组,不足左边补0小数部分:从小数点开始往右,三位成一组,不足右边补0将分成的若干个二进制转换为十进制数,依次排列即为所求八进制数。
3. 十六进制与十进制、二进制的相互转换shi
3.1 十六进制与十进制相互转换
十六进制转十进制的做法也和十进制转二进制类似:
整数部分除16取余,小数部分称16取整十六进制的进位方法为满16进1,所以每个十六进制位上为115。为了用一个十六进制位表示所有数,1015就用A~F对应表示。
3.2 十六进制与二进制相互转换
十六进制与二进制的相互转换跟八进制与二进制的转换类似:
整数部分:从小数点开始往左,四位成一组,不足左边补0小数部分:从小数点开始往右,四位成一组,不足右边补0将分成的若干个二进制转换为十进制数(其中1015对应AF),依次排列即为所求十六进制数。
例3:将二进制数10101111.10111转换为相应的八进制数和十六进制。
10101111.101112=010101111.1011102=257.56810101111.101112=10101111.101110002=AF.B81610101111.10111_2 = 010\space101\space111 \space.101\space110_2 = 257.56_8 \\ 10101111.10111_2 = 1010\space1111\space.\space1011\space1000_2=AF.B8_16 10101111.101112=010101111.1011102=257.56810101111.101112=10101111.101110002=AF.B816
总结
1. 十进制转二进制、八进制、十六进制
2. 二进制、八进制、十六进制转十进制
二进制转十进制:以小数点为标准,整数部分从左往右每位权值为20、21、222^{0}、2^{1}、2^{2}20、21、22依次递增;
小数部分从右往左每位权值为2−1、2−2、2−32^{-1}、2^{-2}、2^{-3}2−1、2−2、2−3依次递减。八进制转十进制:以小数点为标准,
整数部分从左往右每位权值为80、81、828^{0}、8^{1}、8^{2}80、81、82依次递增;
小数部分从右往左每位权值为8−1、8−2、8−38^{-1}、8^{-2}、8^{-3}8−1、8−2、8−3依次递减。十六进制转十进制:以小数点为标准,
整数部分从左往右每位权值为160、161、16216^{0}、16^{1}、16^{2}160、161、162依次递增;
小数部分从右往左每位权值为16−1、16−2、16−316^{-1}、16^{-2}、16^{-3}16−1、16−2、16−3依次递减。八进制、十六进制转十进制:将数据先分组后,采用二进制转十进制方法对每位进行计算
3. 二进制、八进制、十六进制转换
将八进制数据和十六进制数据对应不同的二进制位数进行计算即可。