我有以下结构:
我需要创建一个包含信息值的char数组,我的意思是,我需要这样的东西:
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种可能组合作为字符串,并且只进行查找) – 但这在一般情况下有效.