Skip to content

Commit 59303e2

Browse files
committed
base62 string with two methods
1 parent 6c6f036 commit 59303e2

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

base62.rb

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ def get_string62(digist)
2727
6.times.each do |i|
2828
d_value = digist[i]
2929
if d_value.present?
30-
d_value = d_value -1 #位数从0开始
30+
d_value = d_value
3131
str = ALPHABET[d_value] + str
3232
else
3333
str = 'a' + str
@@ -37,12 +37,20 @@ def get_string62(digist)
3737
str
3838
end
3939

40+
# 输出字符串, 长度不一定为6
41+
def get_string62_no(digist)
42+
str = ''
43+
digist.each do |item|
44+
str << ALPHABET[item]
45+
end
46+
str.reverse
47+
end
48+
4049
# 将str转为十进制数
4150
def base62_to_dec(str)
4251
result = 0
43-
str.split(//).each_with_index do |v, i|
44-
result = result + (ALPHABET.index(v) + 1) * 62**(5-i) if v != 'a'
45-
end
52+
base = ALPHABET.length
53+
str.each_char { |c| result = result * base + ALPHABET.index(c) }
4654
result
4755
end
4856

0 commit comments

Comments
 (0)