繁体   English   中英

如何将IBAN转换为整数?

[英]How to convert an IBAN to an Integer?

注意,这与使用库或任何特定的编程语言无关。 我只想从Wikipedia 验证IBAN理解以下概念:

示例(虚拟英国银行,分类代码12-34-56,帐号98765432):

  • IBAN:

      GB82 WEST 1234 5698 7654 32 
  • 改编:

      WES 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

现在,请有人启发我, 转换为整数到底意味着什么?

哦! Wikipedia上的格式给了我一个提示:它不是一个单一的,完整的大数字,但每个字符必须自己转换:

"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

等等。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM