检查以字符串形式存储的字节是否设置在给定位置

本文关键字:设置 是否 位置 定位 字节 字符串 存储 检查 | 更新日期: 2023-09-27 18:21:26

我有一个表示字节或位字符串的字符串,例如"10011111"。我想把它转换成一个比特数组,并检查一个比特是否设置在任何给定的位置,例如位置3。当我尝试将该字符串转换为字节时,它会给我一个"值对于无符号字节来说太大或太小。"Convert.ToByte(reader[1].ToString())。reader[1].ToString的值="11111111"。

请帮忙。

检查以字符串形式存储的字节是否设置在给定位置

您应该显式地放置,在您的情况下为2

 Byte result = Convert.ToByte(reader[1].ToString(), 2);

尝试这种方式

string x = "111111000";
var cd = x.ToCharArray();

然后您可以相应地工作

Convert.ToByte使用的转换使用十进制数字系统。使用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';
相关文章: