2 回答

TA貢獻1820條經驗 獲得超9個贊
我試圖理解 BitArray 但我不明白如何創建特定大小的位然后輕松填充它們。
BitArray有幾個構造函數。最明顯的是BitArray從bool數組創建:
var bits = new BitArray(new[] { true, false, true, true });
另一種方法是僅通過 size 構造函數創建一個未初始化BitArray的,然后逐個設置位:
var bits = new BitArray(4); // 4 bits, all false for now
for (int i = 0; i < bits.Length; i++)
bits[i] = GetMyNextBit();
更新:
如果您的主要問題是將連接的位轉換為字節,則最好BitArray對所有字段使用一個大的。
設置所有位后,您可以使用此擴展方法:
public static byte[] ToByteArray(this BitArray bits)
{
byte[] result = new byte[(bits.Length - 1) / 8 + 1];
bits.CopyTo(result, 0);
return result;
}
我只對十六進制感興趣
您可以輕松地將字節轉換為十六進制字符串:
var result = new StringBuilder(bytes.Length * 2);
for (int i = 0; i < bytes.Length; i++)
result.Append(bytes[i].ToString("X2"));

TA貢獻1772條經驗 獲得超5個贊
我看到您正在從 RFID 標簽讀取數據。所有數據都可以被視為一系列字節,因此示例使用字節。
如果要將數據顯示為十六進制格式的字符串,那么我建議您將數據讀入數組然后使用
System.Convert.ToString(data, base);
其中 data 是您的 16 位值,base 可以是 2,8,10,16 表示二進制、八進制、十進制或十六進制。
- 2 回答
- 0 關注
- 208 瀏覽
添加回答
舉報