Skip to content

10进制转36进制 ​

本节目标:理解“10进制转36进制”的核心思路,并能把它用于实际开发或面试表达。 将一个10进制数转换为36进制数的过程涉及将该10进制数不断除以36,并记录余数。这些余数,从最后一个到第一个,构成了该数在36进制下的表示。在36进制中,我们使用数字0-9和字母a-z来表示0到35。

详细步骤 ​

假设我们有一个10进制数 num,我们要将其转换为36进制。以下是详细步骤:

  1. 初始化一个空字符串:
  • 这将用于构建36进制的结果。
  1. 不断执行除法:
  • 将 num 除以36,记录除法的余数。
  • 将余数转换为相应的36进制字符:
  • 如果余数是0-9,直接使用数字0-9。
  • 如果余数是10-35,转换为字母a-z,其中10对应a,11对应b,依此类推到35对应z。
  • 将得到的字符添加到结果字符串的前端(因为我们是从低位开始处理的)。
  1. 更新数值:
  • 更新 num 为原数除以36的商。
  • 重复上述过程,直到 num 变为0。
  1. 输出结果:
  • 如果一开始 num 就是0,直接返回 "0"。
  • 否则,返回构建的字符串。

示例 ​

假设我们要将10进制数 123456 转换为36进制。

  1. 初始化:
  • 结果字符串: ""
  • 当前数值: 123456
  1. 第一次除法:
  • 123456 ÷ 36 = 3429,余数是12
  • 余数12对应36进制的 'c'
  • 结果字符串: "c"
  1. 第二次除法:
  • 3429 ÷ 36 = 95,余数是9
  • 余数9对应36进制的 '9'
  • 结果字符串: "9c"
  1. 第三次除法:
  • 95 ÷ 36 = 2,余数是23
  • 余数23对应36进制的 'n'
  • 结果字符串: "n9c"
  1. 第四次除法:
  • 2 ÷ 36 = 0,余数是2
  • 余数2对应36进制的 '2'
  • 结果字符串: "2n9c"
  1. 输出结果:
  • 最终结果为 "2n9c"

这个结果表示123456在36进制下的表示是"2n9c"。

这种方法非常适用于任何需要将10进制转换为更高基数系统的场景,特别是在需要短字符串表示大整数的场合(例如短URL服务等)。这种转换在计算机科学和网络应用中非常有用。

在36进制数系统中,使用的数字包括从0到9的十个阿拉伯数字和从A到Z的二十六个英文字母(或小写字母a-z,具体使用哪种形式取决于具体应用),总共36个字符。这些字符用于表示36进制中的每一个位数的值。

完整的36进制数字列表 ​

以下是36进制所使用的全部字符及其对应的10进制值:

  • 数字:

  • 0 (十进制0)

  • 1 (十进制1)

  • 2 (十进制2)

  • 3 (十进制3)

  • 4 (十进制4)

  • 5 (十进制5)

  • 6 (十进制6)

  • 7 (十进制7)

  • 8 (十进制8)

  • 9 (十进制9)

  • 英文字母:

  • A 或 a (十进制10)

  • B 或 b (十进制11)

  • C 或 c (十进制12)

  • D 或 d (十进制13)

  • E 或 e (十进制14)

  • F 或 f (十进制15)

  • G 或 g (十进制16)

  • H 或 h (十进制17)

  • I 或 i (十进制18)

  • J 或 j (十进制19)

  • K 或 k (十进制20)

  • L 或 l (十进制21)

  • M 或 m (十进制22)

  • N 或 n (十进制23)

  • O 或 o (十进制24)

  • P 或 p (十进制25)

  • Q 或 q (十进制26)

  • R 或 r (十进制27)

  • S 或 s (十进制28)

  • T 或 t (十进制29)

  • U 或 u (十进制30)

  • V 或 v (十进制31)

  • W 或 w (十进制32)

  • X 或 x (十进制33)

  • Y 或 y (十进制34)

  • Z 或 z (十进制35)

使用场景 ​

36进制常用于需要较短字符串来表示较大数字的场景,如短网址服务中的URL缩短,或在其他需要生成短但唯一标识符的应用中。这种方法通过增加表示数的位的基数来减少所需表示数的位数,从而使得表示更为紧凑。

在编程实践中,转换为36进制可以简单使用JavaScript的toString(36)方法,这使得任何数字可以轻松转换为此种高基数系统的字符串表示。

本站总访问 — 次