以下是二进制、十进制、八进制、十六进制相互转化的常见方式:
一、十进制转其他进制
1. 十进制转二进制
采用“除2取余,逆序排列”的方法。 例如将十进制数150转换为二进制: - 用150除以2,商是75,余数是0 - 接着用75除以2,商是37,余数是1 - 再用37除以2,商是18,余数是1 - 再用18除以2,商是9,余数是0 - 再用9除以2,商是4,余数是1 - 再用4除以2,商是2,余数是0 - 再用2除以2,商是1,余数是0 - 最后用1除以2,商是0,余数是1 然后将所得余数从下到上排列,得到二进制数10010110
2. 十进制转八进制
运用“除8取余,逆序排列”的办法。 比如把十进制数25转换为八进制: - 25除以8,商是3,余数是1 - 3除以8,商是0,余数是3 把余数从下到上排列,结果就是八进制数31
3. 十进制转十六进制
采取“除16取余,逆序排列”的方式,这里余数如果是10到15,则分别用A到F表示。 例如将十进制数50转换为十六进制: - 50除以16,商是3,余数是2 - 3除以16,商是0,余数是3 把余数从下到上排列,最终得到十六进制数32
二、二进制转其他进制
1. 二进制转十进制
采用“按权展开求和”的方法。对于二进制数从右到左每一位的数字乘以2的相应位数次幂(幂次从0开始),然后将各项相加。 例如二进制数1011转换为十进制: $1\times2^{0}+1\times2^{1}+0\times2^{2}+1\times2^{3}=1 + 2 + 0 + 8 = 11$
2. 二进制转八进制
可以将二进制数从右到左每三位一组进行划分(不足三位的在左边补0),然后将每组二进制数转换为对应的八进制数。 比如二进制数110101,分组为011 010 1,对应的八进制数分别是3、2、1,所以转换后的八进制数是321。
3. 二进制转十六进制
把二进制数从右到左每四位一组进行划分(不足四位的在左边补0),再将每组二进制数转换成对应的十六进制数。 例如二进制数1101101,分组为0110 1101,对应的十六进制数分别是6、D,转换后的十六进制数就是6D。
三、八进制转其他进制
1. 八进制转十进制
同样是“按权展开求和”,八进制数从右到左每一位数字乘以8的相应位数次幂(幂次从0开始),再把各项相加。 例如八进制数34转换为十进制: $4\times8^{0}+3\times8^{1}=4 + 24 = 28$
2. 八进制转二进制
将八进制数的每一位转换为对应的三位二进制数。 比如八进制数56,5转换为二进制是101,6转换为二进制是110,所以对应的二进制数就是101110。
3. 八进制转十六进制
先将八进制转二进制(按上述方法),再将二进制转十六进制(按二进制转十六进制的方法)。
四、十六进制转其他进制
1. 十六进制转十进制
按照“按权展开求和”的原则,十六进制数从右到左每一位数字乘以16的相应位数次幂(幂次从0开始),然后把各项相加,其中十六进制中的A到F分别代表十进制的10到15。 例如十六进制数2A转换为十进制: $A(也就是10)\times16^{0}+2\times16^{1}=10 + 32 = 42$
2. 十六进制转二进制
把十六进制数的每一位转换为对应的四位二进制数。 比如十六进制数3C,3转换为二进制是0011,C(也就是12)转换为二进制是1100,所以对应的二进制数就是00111100。
3. 十六进制转八进制
先将十六进制转二进制,再将二进制转八进制。
—— 本文来自火龙信奥(义乌睿码科技):义乌青少年信息学奥赛与编程教育平台,专注 CSP-J/S、NOIP、GESP 竞赛培训,线上线下融合教学,助力编程升学。网址:hlcoding.com