CUSIP は、金融証券を一意に識別するための 9 桁の英数字コードです。
https://en.wikipedia.org/wiki/CUSIP
それらは 1964 年に発明され、60 年代のデータ伝送の信頼性を考えると、9 桁目は実際には最初の 8 文字の有効性を確認するために使用されるチェック ディジットです。今日でも、CUSIP を検証したい理由を見つけたり、チェック ディジットの目的に反するにもかかわらず、会社やサービスが 8 文字の CUSIP のみを送信することを決定したりすることがあります。
チェック ディジットを生成する手順は次のとおりです。
数字以外の数字を、アルファベットの序数に 9 を加えた位置 (A=10、B=11、...Z=35) に従って値に変換し、文字 *=36、@=37、#=38 を変換します。
偶数桁ごとに 2 を掛ける
掛け算の結果が 2 桁の数字の場合は、それらの数字を足し合わせます。(12 = 1 + 2 = 3)
すべての値の合計を取得します。
この演算の下限値を取得します: (10 - ( sum modulo 10)) modulo 10.
C#でこの値を取得する最良/最も簡単な方法は何ですか?