0

Platfrom 3.5 .net.(c#)

请参考将 ascii 转换为 bcd (c#) 的代码。

4

1 回答 1

3

整数 num 将存储 BCD 值......可能是一种更简洁的方式,但这应该可以解决问题。但我又要问为什么?

char[] str = "12345".ToCharArray();
int num = 0;
for (int i = 0; i < str.Length; i++)
{
    var val = str[str.Length -1 - i] - 48;
    if (val < 0 || val > 9) 
        throw new ArgumentOutOfRangeException();
    num += val << (4 * i);
}

Console.WriteLine(num.ToString("x2")); //must be viewed as hex

...如果您想在 LINQ 中执行此操作(这没有边界检查)...

int vs = "12345".ToCharArray().Reverse()
                .Select((c, i) => (c-48) << 4 * i)
                .Sum();
于 2009-11-30T15:52:53.193 回答