2017-02-09 7 views
0

注:これはライブラリや特定のプログラミング言語の使用に関するものではありません。IBANを整数に変換するには?

例(架空のイギリスの銀行、ソートコード12-34-56、口座番号98765432):

  • 私はちょうどIBAN検証Wikipediaから、以下の概念を理解したいです

    IBAN:

    GB82 WEST 1234 5698 7654 32 
    
  • 再配置:

    W E S T12345698765432 G B82 
    
  • を整数に変換する:

    3214282912345698765432161182 
    
  • 計算剰余:

    3214282912345698765432161182 mod 97 = 1 
    

太字のステップは私に頭痛を引き起こしています。私はIBANが英数字、つまりBase-36でエンコードされていると仮定しています(10数字、26文字)。

ここで、ベース36をベース10に変換すると(これは私がこのステップを理解する方法です)、私の結果は邪魔になります。ここでは、例えば、Rubyで:今

$ irb 
irb(main):001:0> "WEST12345698765432GB82".to_i(36) 
=> 15597194993925618867946544653683410 

、誰かが本当にを整数に変換が何を意味するのか、私を啓発してください?

+1

はい。チェックサム/検証のためのモジュロが必要です。 – default

答えて

0

ああ! 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があるがベース-36の32番目の整数:

"W".to_i(36) 
=> 32 

などです。

関連する問題