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
如果乘法的结果是两位数,则将这些数字相加。(12 = 1 + 2 = 3)
获取所有值的总和。
获取此操作的底值:(10 - ( sum modulo 10)) modulo 10。
在 C# 中获得此值的最佳/最简单方法是什么?