编程基础 - 进制转换(Binary Conversion)
文章目录
1 进制(System of Numeration)
进制(进位计数法) 是一种人为定义带进位的计数方法。对于任何一种进制,都是每个位置上的数达到“几”进一。而这个“几”就是人为定义的,称做 基数(底数) 。比如现在最常用的十进制就是人为定义“几”为十,即每一位可用的数为十个(0,1,2,3,4,5,6,7,8,9)。关于进制更详细的解释还请自行搜索。
最常用的进制为:十进制,二进制,十六进制,八进制。
根据概念我们每一位可用的数字如下表:
进制 | 每一位能够使用的数字表示 |
---|---|
十进制(DEC) | 0,1,2,3,4,5,6,7,8,9 |
二进制(BIN) | 0,1 |
十六进制(HEX) | 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F |
八进制(OCT) | 0,1,2,3,4,5,6,7 |
2 其它进制转十进制(Others to DEC)
每一位的运算为基数的位置次方乘以数字表示(注意,位置是从0开始计算,而非1),每一位的运算结果之和表示这个数。
举例来说十进制数字129即:
-
十进制: 129 = 10 2 × 1 + 10 1 × 2 + 10 0 × 9 129 = {10}^2 \times 1 + {10}^1 \times 2 + {10}^0 \times 9 129=102×1+101×2+100×9
-
二进制: 10000001 = 10 1110 × 1 + 10 1101 × 0 + ⋯ + 10 1 × 0 + 10 0 × 1 1000 0001 = {10}^{1110} \times 1 + {10}^{1101} \times 0 + \cdots + {10}^1 \times 0 + {10}^0 \times 1 10000001=101110×1+101101×0+⋯+101×0+100×1
-
十六进制: 81 = 10 1 × 8 + 10 0 × 1 81 = {10}^1 \times 8 + {10}^0 \times 1 81=101×8+100×1
-
八进制: 201 = 10 2 × 2 + 10 1 × 0 + 10 0 × 1 201 = {10}^2 \times 2 + {10}^1 \times 0 + {10}^0 \times 1 201=102×2+101×0+100×1
你会看到基数全部都是10,但它们是不同的,它们表示的是对应进制的10,而不是十进制的10。
如果全部换成十进制的表示就是:
-
十进制: 129 = 10 2 × 1 + 10 1 × 2 + 10 0 × 9 = 129 129 = {10}^2 \times 1 + {10}^1 \times 2 + {10}^0 \times 9 = 129 129=102×1+101×2+100×9=129
-
二进制: b 10000001 = 2 7 × 1 + 2 6 × 0 + ⋯ + 2 1 × 0 + 2 0 × 1 = 129 b1000 0001 = {2}^7 \times 1 + {2}^6 \times 0 + \cdots + {2}^1 \times 0 + {2}^0 \times 1 = 129 b10000001=27×1+26×0+⋯+21×0+20×1=129
-
十六进制: x 81 = 16 1 × 8 + 16 0 × 1 = 129 x81 = {16}^1 \times 8 + {16}^0 \times 1 = 129 x81=161×8+160×1=129
-
八进制: o 201 = 8 2 × 2 + 8 1 × 0 + 8 0 × 1 + = 129 o201 = {8}^2 \times 2 + {8}^1 \times 0 + {8}^0 \times 1 + = 129 o201=82×2+81×0+80×