-3

谁能给我 C# 中的代码...用 Mod11 获取验证码?

谢谢。

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

例子:

Mod11.AddCheckDigit("036532");

结果:0365327

4

1 回答 1

3

代码在这里:

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),否则会出现数字问题。

于 2011-08-10T05:25:08.447 回答