我有一個字符串表示一個字節或位串,例如「10011111」。我想將它轉換爲一個bitarray,並檢查是否有位設置在任何給定的位置,例如在位置3. 當我嘗試將該字符串轉換爲一個字節時,它給了我一個 「值對於無符號值來說太大或太小字節。」 Convert.ToByte(讀取器[1]的ToString())。 reader [1] .ToString()=「11111111」的值。檢查存儲爲位串的字節是否設置在給定位置
請幫忙。
我有一個字符串表示一個字節或位串,例如「10011111」。我想將它轉換爲一個bitarray,並檢查是否有位設置在任何給定的位置,例如在位置3. 當我嘗試將該字符串轉換爲一個字節時,它給了我一個 「值對於無符號值來說太大或太小字節。」 Convert.ToByte(讀取器[1]的ToString())。 reader [1] .ToString()=「11111111」的值。檢查存儲爲位串的字節是否設置在給定位置
請幫忙。
你應該把基地明確,這是你的情況:
Byte result = Convert.ToByte(reader[1].ToString(), 2);
嘗試這種方式
string x = "111111000";
var cd = x.ToCharArray();
,然後你可以相應工作
由使用的轉換正在使用十進制數字系統。一個簡單的方法使用轉換爲二進制數組LINQ的將是:
bool[] array = "101001010101".Select(c => c == '1').ToArray();
或節省內存:
string str = "1010101001011100";
var array = new BitArray(str.Length);
for (int i = 0; i < str.Length; i++)
{
array[i] = str[i] == '1';
}
或者只是使用字符串本身:
bool isSet = str[3] == '1';
@Dimitry Bychenko唉唉非常感謝。 – 2014-09-10 12:59:07