进制转换



支持任意位数的整数的进制转换。如果需要对整数做进制转换,优先使用这个。

 2 进制   
复制
 8 进制   
复制
10 进制   
复制
16 进制   
复制
32 进制   
复制

进制

什么是进制

进制,顾名思义,就是计数时进一位的方法。比如十进制就是逢十进一,即累加到 10 就进一位;二进制就是逢二进一,即累加到 2 就进一位。以此类推。

我们生活中最常用的就是十进制。另外常用的进制单位还有二进制、八进制和十六进制。

十进制

十进制是我们最常用的进制单位,据说从我们的猴子祖先们就已经开始流传。这是因为大家都是十个手指,大家需要计数时就自然地利用了人肉计数器 - 手指。

十进制很好理解,用 09 十个阿拉伯数字表示,每十位向前进一位。

二进制

二进制由 01 两个数字表示,逢二进一。比如二进制 1 相加, 1 + 1 等于 2,需要向前进一位,变成二进制 10。

二进制较多使用在计算机中,因为计算机物理结构上使用了高低电压,可以分别用 0 和 1 表示。

八进制

八进制由 01234567 这八个数字组成,逢八进一。计算过程和二进制类似。

十六进制

十六进制由 0123456789abcdef 十六个字符组成。十六进制值一般会在前面加上 0x 前缀,比如 0x8a 表示十六进制值 8a

进制转换方法

那么进制怎么计算才能转换成另一种进制。让我们先考虑十进制转换成 N 进制,以及 N 进制转换成十进制(N 可以为任意进制,比如 2、8 或者 16)。

十进制值转换成 N 进制

  1. 假设十进制值为 D1
  2. D1 对 N 取余,得到的余数作为 N 进制第一位(低位)的值
  3. D1 除以 N,将结果取整,作为下一轮计算的十进制值,记该值为 D2
  4. D2 对 N 取余,得到的余数作为 N 进制第二位的值
  5. D2 除以 N,将结果取整,作为下一轮计算的十进制值,记该值为 D3
  6. 循环执行上面的逻辑,直到 Dx 除以 N 取整后的值为 0

例如,使用上面的公式将十进制值 19 转换成二进制,步骤是

  1. 19 % 2 = 1,将 1 作为二进制值的最低位;19 / 2 = 9.5,取整数 9
  2. 9 % 2 = 1,将 1 作为第二位;9 / 2 = 4.5,取整数 4
  3. 4 % 2 = 0,将 0 作为第三位;4 / 2 = 2
  4. 2 % 2 = 0,将 0 作为第四位;2 / 2 = 1
  5. 1 % 2 = 1,将 1 作为第五位;1 / = 0.5,取整数 0,流程结束
  6. 最终的二进制值为 10011

N 进制值转换成十进制

  1. 假设二进制值为 B1
  2. 从低位开始,将 B1 每一位的值,乘以 N 的(位数 - 1)次方
  3. 将步骤 2 的每个乘积相加,即得到十进制值

例如,要将二进制值 1101 转换成十进制,步骤是

  1. 1101 一共有 4 位,从低位开始,第一位是 1,第二位是 0,第三位是 1,第四位是 1
  2. 第一位的计算结果是 1 * 2 ^ (1 - 1) = 1 * 2 ^ 0 = 1 * 1 = 1,其中 2 ^ 0 表示 2 的 0 次方
  3. 第二位的计算结果是 0 * 2 ^ (2 - 1) = 0
  4. 第三位的计算结果是 1 * 2 ^ (3 - 1) = 4
  5. 第四位的计算结果是 1 * 2 ^ (4 - 1) = 8
  6. 十进制的转换结果是 1 + 0 + 4 + 8 = 13

其他进制的相互转换,可以用上面的方法,先将它转成十进制,再转成目标进制

参考文档

进制规范文档