在 C# 中获取校验位(Mod 11)实现

发布于 2024-11-28 16:24:06 字数 244 浏览 1 评论 0原文

谁能给我 C# 代码...用于使用 Mod11 获取验证数字?

谢谢。

public class Mod11 
{
    public static string AddCheckDigit(string number); 
}

示例:

Mod11.AddCheckDigit("036532");

结果:0365327

Can anyone give me the code in C#... for getting the Verification Digit with Mod11?

Thanks.

public class Mod11 
{
    public static string AddCheckDigit(string number); 
}

Example:

Mod11.AddCheckDigit("036532");

Result: 0365327

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

泅渡 2024-12-05 16:24:06

代码在这里:

public class Mod11
{
    public static string AddCheckDigit(string number)
    {
        int Sum = 0;
        for (int i = number.Length - 1, Multiplier = 2; i >= 0; i--)
        {
            Sum += (int)char.GetNumericValue(number[i]) * Multiplier;

            if (++Multiplier == 8) Multiplier = 2;
        }
        string Validator = (11 - (Sum % 11)).ToString();

        if (Validator == "11") Validator = "0";
        else if (Validator == "10") Validator = "X";

        return number + Validator;
    }
}

我希望它对某人有所帮助。

问题:如果除法的余数是 0 或 1,那么减法将产生 10 或 11 的两位数。这是行不通的,所以如果校验位是 10,则经常使用 X作为校验位,如果校验位是 11,则使用 0 作为校验位。如果使用X,则校验位字段必须定义为字符(PIC X),否则会出现数字问题。

The code is here:

public class Mod11
{
    public static string AddCheckDigit(string number)
    {
        int Sum = 0;
        for (int i = number.Length - 1, Multiplier = 2; i >= 0; i--)
        {
            Sum += (int)char.GetNumericValue(number[i]) * Multiplier;

            if (++Multiplier == 8) Multiplier = 2;
        }
        string Validator = (11 - (Sum % 11)).ToString();

        if (Validator == "11") Validator = "0";
        else if (Validator == "10") Validator = "X";

        return number + Validator;
    }
}

I hope it help some one.

PROBLEMS: If the remainder from the division is 0 or 1, then the subtraction will yield a two digit number of either 10 or 11. This won't work, so if the check digit is 10, then X is frequently used as the check digit and if the check digit is 11 then 0 is used as the check digit. If X is used, then the field for the check digit has to be defined as character (PIC X) or there will be a numeric problem.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文