3

我想了解逻辑,以便我可以在 java 中实现这个算法。我想计算有效的十六进制 IMEI 号码的校验位。例如 - 6C4BFFC0000004 请帮我解决算法。我试图在谷歌中找到解决方案,但我无法使用这些算法找到正确的答案。

计算我所做的就像 -

但是上面 IMEI 的校验位是 4。我得到了 7。我不知道我哪里出错了。

4

2 回答 2

0

我有同样的需求,我通过使用以下网站上解释的逻辑找到了解决方案:

信用卡号码的 Luhn 测试

我基于 C 示例编写了一个函数以确定最后一位数字。Java 中的行为将是相同的。

于 2016-04-15T14:20:18.157 回答
0

实际上,您不需要先转换为十进制。如果您有一个十六进制的“IMEI”,它实际上是一个 MEID。IMEI 是 MEID 的仅十进制子集。实际上有一项关于如何计算基于十六进制的 MEID 的 Luhn 的专利。参见以下权利要求 0113 至 0119:

https://patentimages.storage.googleapis.com/74/63/03/3fb507952c7ccf/US20080194223A1.pdf

于 2018-06-19T14:53:10.153 回答