进制转换是计算机科学中的一个基本概念。不同的进制表示系统使用不同的基数(例如,二进制的基数是2,十进制的基数是10)来表示数字。以下是一些常见的进制及其转换方法: ### 常见进制 - **二进制(Binary)**:基数为2,只使用数字 `0` 和 `1`。 - **八进制(Octal)**:基数为8,使用数字 `0` 到 `7`。 - **十进制(Decimal)**:基数为10,使用数字 `0` 到 `9`。 - **十六进制(Hexadecimal)**:基数为16,使用数字 `0` 到 `9` 和字母 `A` 到 `F`(或 `a` 到 `f`,代表10到15)。 ### 进制转换方法 #### 1. 二进制转十进制 将二进制数按权展开,从右到左依次乘以 2 的幂,然后求和。 - 例如,二进制 `1011` 转换为十进制: \[ 1 \times 2^3 + 0 \times 2^2 + 1 \times 2^1 + 1 \times 2^0 = 8 + 0 + 2 + 1 = 11 \] #### 2. 十进制转二进制 通过不断将十进制数除以2,记录每次的余数,然后将余数倒序排列得到二进制数。 - 例如,十进制 `13` 转换为二进制: - 13 ÷ 2 = 6,余数 1 - 6 ÷ 2 = 3,余数 0 - 3 ÷ 2 = 1,余数 1 - 1 ÷ 2 = 0,余数 1 - 结果:`1101` #### 3. 二进制转八进制 将二进制数每三位分组(从右到左),然后将每组转换为对应的八进制数。 - 例如,二进制 `101011` 转换为八进制: - 将二进制数分组为 `101` 和 `011` - `101` = 5,`011` = 3 - 结果:`53` #### 4. 八进制转二进制 将每个八进制数转换为三位二进制数,拼接得到最终的二进制数。 - 例如,八进制 `53` 转换为二进制: - `5` = `101`,`3` = `011` - 结果:`101011` #### 5. 十进制转十六进制 通过不断将十进制数除以16,记录每次的余数(如果余数大于9,转换为对应的字母),然后将余数倒序排列得到十六进制数。 - 例如,十进制 `255` 转换为十六进制: - 255 ÷ 16 = 15,余数 15(对应 `F`) - 15 ÷ 16 = 0,余数 15(对应 `F`) - 结果:`FF` #### 6. 十六进制转十进制 将十六进制数按权展开,从右到左依次乘以16的幂,然后求和。 - 例如,十六进制 `1A3` 转换为十进制: \[ 1 \times 16^2 + 10 \times 16^1 + 3 \times 16^0 = 256 + 160 + 3 = 419 \] ### Python 实现进制转换 Python 提供了一些内置函数来轻松进行进制转换。 - **十进制转其他进制:** ``` python # 十进制转二进制 print(bin(13)) # 输出:0b1101 # 十进制转八进制 print(oct(13)) # 输出:0o15 # 十进制转十六进制 print(hex(255)) # 输出:0xff ``` - **其他进制转十进制:** ``` python # 二进制转十进制 print(int('1101', 2)) # 输出:13 # 八进制转十进制 print(int('15', 8)) # 输出:13 # 十六进制转十进制 print(int('ff', 16)) # 输出:255 ``` 通过理解这些转换方法,可以更好地掌握不同进制之间的关系和计算方法。