Appearance
10进制转36进制
本节目标:理解“10进制转36进制”的核心思路,并能把它用于实际开发或面试表达。 将一个10进制数转换为36进制数的过程涉及将该10进制数不断除以36,并记录余数。这些余数,从最后一个到第一个,构成了该数在36进制下的表示。在36进制中,我们使用数字0-9和字母a-z来表示0到35。
详细步骤
假设我们有一个10进制数 num,我们要将其转换为36进制。以下是详细步骤:
- 初始化一个空字符串:
- 这将用于构建36进制的结果。
- 不断执行除法:
- 将
num除以36,记录除法的余数。 - 将余数转换为相应的36进制字符:
- 如果余数是0-9,直接使用数字0-9。
- 如果余数是10-35,转换为字母a-z,其中10对应a,11对应b,依此类推到35对应z。
- 将得到的字符添加到结果字符串的前端(因为我们是从低位开始处理的)。
- 更新数值:
- 更新
num为原数除以36的商。 - 重复上述过程,直到
num变为0。
- 输出结果:
- 如果一开始
num就是0,直接返回 "0"。 - 否则,返回构建的字符串。
示例
假设我们要将10进制数 123456 转换为36进制。
- 初始化:
- 结果字符串:
"" - 当前数值:
123456
- 第一次除法:
- 123456 ÷ 36 = 3429,余数是12
- 余数12对应36进制的 'c'
- 结果字符串:
"c"
- 第二次除法:
- 3429 ÷ 36 = 95,余数是9
- 余数9对应36进制的 '9'
- 结果字符串:
"9c"
- 第三次除法:
- 95 ÷ 36 = 2,余数是23
- 余数23对应36进制的 'n'
- 结果字符串:
"n9c"
- 第四次除法:
- 2 ÷ 36 = 0,余数是2
- 余数2对应36进制的 '2'
- 结果字符串:
"2n9c"
- 输出结果:
- 最终结果为
"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)方法,这使得任何数字可以轻松转换为此种高基数系统的字符串表示。
