C# Byte[] 转 BCD 和 BCD 转 INT

作者:编程家 分类: arrays 时间:2025-10-07

### 将C# Byte数组转换为BCD码

在C#编程中,有时候我们需要将字节数组(Byte[])表示的数据转换为BCD(Binary-Coded Decimal)码,这在处理数字时非常常见。BCD码是一种将数字表示为二进制的十进制编码方式,它使得数字的处理更为灵活和高效。在下面的代码示例中,我们将展示如何实现这一转换过程。

csharp

using System;

class Program

{

static void Main()

{

byte[] byteArray = { 0x12, 0x34, 0x56, 0x78 };

string bcdString = ByteToBcd(byteArray);

Console.WriteLine("Byte数组转换为BCD码:");

Console.WriteLine(bcdString);

}

static string ByteToBcd(byte[] byteArray)

{

char[] bcdArray = new char[byteArray.Length * 2];

for (int i = 0; i < byteArray.Length; i++)

{

bcdArray[i * 2] = (char)((byteArray[i] >> 4) + 0x30);

bcdArray[i * 2 + 1] = (char)((byteArray[i] & 0x0F) + 0x30);

}

return new string(bcdArray);

}

}

在上述代码中,我们定义了一个`ByteToBcd`方法,该方法接受一个字节数组作为输入,并返回相应的BCD码字符串。该方法通过迭代字节数组中的每个字节,将其高四位和低四位分别转换为对应的BCD码。

### 将BCD码转换为整数

在处理BCD码时,有时我们需要将其转换为整数以便进行后续的数值计算。下面的代码示例展示了如何在C#中实现将BCD码转换为整数的功能。

csharp

using System;

class Program

{

static void Main()

{

string bcdString = "12345678";

int intValue = BcdToInt(bcdString);

Console.WriteLine("BCD码转换为整数:");

Console.WriteLine(intValue);

}

static int BcdToInt(string bcdString)

{

int result = 0;

foreach (char digit in bcdString)

{

result = result * 10 + (digit - 0x30);

}

return result;

}

}

在上述代码中,我们定义了一个`BcdToInt`方法,该方法接受一个表示BCD码的字符串作为输入,并返回相应的整数。该方法通过迭代字符串中的每个数字字符,将其转换为对应的整数,并通过累积的方式得到最终结果。

通过以上两个代码示例,我们展示了在C#中如何进行Byte数组到BCD码和BCD码到整数的转换。这些转换在数字处理的各种应用中都具有重要的意义。