📜  c# 从 int 获取二进制数组 - C# (1)

📅  最后修改于: 2023-12-03 14:59:41.411000             🧑  作者: Mango

C# 从 int 获取二进制数组

在 C# 中,我们可以通过以下方法将 int 类型的数字转换成二进制数组:

int num = 42;
byte[] binaryArray = BitConverter.GetBytes(num);

这里使用了 BitConverter 类中的 GetBytes() 方法将数字转换为二进制数组。需要注意的是,在使用 GetBytes() 方法转换时,“低位在前,高位在后”的字节顺序可能因系统而异。如果需要指定字节顺序,则可以使用 BitConverter 类中的其他方法。

实现代码如下:

int num = 42;
byte[] binaryArray = BitConverter.GetBytes(num);
string binaryString = string.Join("", binaryArray.Select(x => Convert.ToString(x, 2).PadLeft(8, '0')));
string result = $"二进制数组为:[{string.Join(", ", binaryArray)}]\n对应二进制字符串为:{binaryString}";
Console.WriteLine(result);

输出结果为:

二进制数组为:[42, 0, 0, 0]
对应二进制字符串为:00101010000000000000000000000000

在这个示例中,我们将得到一个长度为 4 的二进制数组,因为 int 数据类型是 32 位的(即 4 个字节)。我们通过使用 LINQ 中的 Select() 方法和 Convert.ToString() 方法的 overload,将每个字节转换成一个 8 位的二进制字符串。最后,我们使用 string.Join() 方法将所有的二进制字符串拼接起来,并在必要的地方进行字符串填充(PadLeft() 方法)。