如何使用 C# 从位信息创建 char 数组
How to create a char array from a bits information with C#
我有以下结构:
我需要用信息值创建一个字符数组,我的意思是,我需要这样的东西:
char[] result = new char[]{Information, Information, Information, Information}
最好的方法是什么?我这样做是为了获取字节,接下来传递给位数组,接下来创建一个包含信息位置的字符串,最后在包含所需信息的字符串上应用 ToCharArray() 方法,但我想知道是否存在这样做的最佳方法.
var oneByteInfo = message.ReadBytes(1);
var oneByteInfo2 = message.ReadBytes(1);
var infoBitArray = new BitArray(oneByteInfo);
var info2BitArray = new BitArray(oneByteInfo2);
var arrayString = Convert.ToString(BitConverter.GetBytes(infoBitArray[0])[0]) +
Convert.ToString(BitConverter.GetBytes(infoBitArray[1])[0]) +
Convert.ToString(BitConverter.GetBytes(info2BitArray[0])[0]) +
Convert.ToString(BitConverter.GetBytes(info2BitArray[1])[0]);
var result = arrayString.ToCharArray();
提前致谢。
大概是这样的:
char[] arr = new char[4];
arr[0] = (bytes[2] & 0x01) != 0 ? '1' : '0';
arr[1] = (bytes[2] & 0x02) != 0 ? '1' : '0';
arr[2] = (bytes[3] & 0x01) != 0 ? '1' : '0';
arr[3] = (bytes[3] & 0x02) != 0 ? '1' : '0';
请注意,有一些方法可以更简单地执行此操作(例如,将两位的所有 4 种可能组合作为字符串,然后只进行查找)- 但这在一般情况下有效。
我有以下结构:
我需要用信息值创建一个字符数组,我的意思是,我需要这样的东西:
char[] result = new char[]{Information, Information, Information, Information}
最好的方法是什么?我这样做是为了获取字节,接下来传递给位数组,接下来创建一个包含信息位置的字符串,最后在包含所需信息的字符串上应用 ToCharArray() 方法,但我想知道是否存在这样做的最佳方法.
var oneByteInfo = message.ReadBytes(1);
var oneByteInfo2 = message.ReadBytes(1);
var infoBitArray = new BitArray(oneByteInfo);
var info2BitArray = new BitArray(oneByteInfo2);
var arrayString = Convert.ToString(BitConverter.GetBytes(infoBitArray[0])[0]) +
Convert.ToString(BitConverter.GetBytes(infoBitArray[1])[0]) +
Convert.ToString(BitConverter.GetBytes(info2BitArray[0])[0]) +
Convert.ToString(BitConverter.GetBytes(info2BitArray[1])[0]);
var result = arrayString.ToCharArray();
提前致谢。
大概是这样的:
char[] arr = new char[4];
arr[0] = (bytes[2] & 0x01) != 0 ? '1' : '0';
arr[1] = (bytes[2] & 0x02) != 0 ? '1' : '0';
arr[2] = (bytes[3] & 0x01) != 0 ? '1' : '0';
arr[3] = (bytes[3] & 0x02) != 0 ? '1' : '0';
请注意,有一些方法可以更简单地执行此操作(例如,将两位的所有 4 种可能组合作为字符串,然后只进行查找)- 但这在一般情况下有效。