8ビットの文字列があり、それを1バイトに変換したいと思います。関数が正しく機能しない理由がわかりません。8ビットを8つのunsignedcharの配列に格納しています。これはこれまでの私の方法です:
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」が含まれています!はっきりしないのでごめんなさい。
私がこれでどこが間違っていたのか誰かが知っているだろうか?ビットが正しくバイトに変換されない理由がわかりません。誰か助けてもらえますか?ありがとう!