如何从位数组变为字节?

时间:2018-06-25 14:31:08

标签: c++

我有这个位数组

int bits[8] = { 0, 1, 1, 0, 0, 1, 0, 1 }

这是十六进制的65或十进制的101。 ASCII字母为“ e”。如何将数组读入char和int(十进制值)?

1 个答案:

答案 0 :(得分:4)

您可以使用位移来从位数组中获取字符,如下所示:

int bits[8] = { 0, 1, 1, 0, 0, 1, 0, 1 };
char result = 0; // store the result

for(int i = 0; i < 8; i++){
    result += (bits[i] << (7 - i)); // Add the bit shifted value
}

cout << result;

这基本上循环遍历您的数组,将移位正确的数量,然后将该值添加到聚合的“结果”变量中。输出应为“ e”。