Platfrom 3.5 .net。(c#)
请将我的代码转换为将ascii转换为bcd(c#)。
答案 0 :(得分: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();