注意,这不是关于使用库或任何特定的编程语言。我只想了解以下概念,来自Wikipedia,验证IBAN :
示例(虚构的英国银行,分类代码12-34-56,帐号98765432):
IBAN:
GB82 WEST 1234 5698 7654 32
重新排列:
W E S T12345698765432 G B82
转换为整数:
3214282912345698765432161182
计算余数:
3214282912345698765432161182 mod 97 = 1
大胆的举动令我头疼。我假设IBAN是字母数字,即Base-36编码(10个数字,26个字母)。
现在,当我将base-36转换为base-10时(这就是我理解这一步的方法),我的结果就此消失了。例如,在Ruby中:
$ irb
irb(main):001:0> "WEST12345698765432GB82".to_i(36)
=> 15597194993925618867946544653683410
现在,请有人启发我,转换为整数的真正含义是什么?
答案 0 :(得分:0)
哦!维基百科上的格式给了我一个提示:它不是一个整体的大数字,但每个角色都必须自己转换:
"WEST12345698765432GB82".split("").each do |c|
print c.to_i(36)
end
结果:
3214282912345698765432161182
=> ["W", "E", "S", "T", "1", "2", "3", "4", "5", "6", "9", "8", "7", "6", "5", "4", "3", "2", "G", "B", "8", "2"]
注意,W
是Base-36中的第32个整数:
"W".to_i(36)
=> 32
等等。