我有一个字符串表示一个字节或位串,例如“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