我有一串8位的字符串,想将其转换为1字节。但我不确定为什么我的函数没有正常工作。我已经将8位存储到了一个由8个无符号字符组成的数组中。这是目前我的方法:
unsigned int bitsToBytes(unsigned char *bits)
{
unsigned int sum = 0;
for(int i = 7; i >= 0; i--)
{
sum += bits[i];
sum<<=1;
}
return sum;
}
int main()
{
unsigned char bits[8];
unsigned int byt;
byt = bitsToBytes(bits);
cout << byt; //doesn't give me the right result
}
编辑:我的位数组中包含“1”和“0”!抱歉没有表述清楚。
有人知道我在哪里出错了吗?我不确定为什么我的位没有正确地转换为字节。能帮忙吗?谢谢!