C++中常见的进制有十进制、二进制、八进制和十六进制。下面介绍一下它们的转化方法。
1. 十进制转其他进制:
十进制转二进制:可以用除2取余数的方法,依次将余数倒过来得到二进制表示。例如,将十进制数13转为二进制,先将13除以2得到余数1,再将商6除以2得到余数0,再将商3除以2得到余数1,最后将商1除以2得到余数1,将余数倒过来得到二进制表示为1101。
十进制转八进制:可以用除8取余数的方法,依次将余数倒过来得到八进制表示。例如,将十进制数83转为八进制,先将83除以8得到余数3,再将商10除以8得到余数2,最后将商1的余数1加入表示中,将余数倒过来得到八进制表示为123。
十进制转十六进制:可以用除16取余数的方法,将余数转换为十六进制的表示形式。例如,将十进制数312转为十六进制,先将312除以16得到余数8,将8转为十六进制表示的8,再将商19除以16得到余数11(十六进制表示的B),最后将商1的余数1加入表示中,将余数倒过来得到十六进制表示为0x13B。
2. 其他进制转十进制:
二进制转十进制:将二进制数从右往左依次乘以2的0次方、1次方、2次方……即可得到十进制数。例如,将二进制数1101转为十进制,计算方法为1*2^3+1*2^2+0*2^1+1*2^0=13。
八进制转十进制:将八进制数从右往左依次乘以8的0次方、1次方、2次方……即可得到十进制数。例如,将八进制数123转为十进制,计算方法为3*8^0+2*8^1+1*8^2=83。
十六进制转十进制:将十六进制数从右往左依次乘以16的0次方、1次方、2次方……即可得到十进制数。十六进制中A、B、C、D、E、F依次表示十进制数10、11、12、13、14、15。例如,将十六进制数0x13B转为十进制,计算方法为11*16^0+3*16^1+1*16^2=312。