.bin からバイトを読み取る必要がありますが、特定のビットから開始します。次に例を示します。
この 2 バイトがある場合:
01010111 10101100
プログラムは、ビット番号 3 (またはインデックス 2) から開始して、任意のビットから読み取ることができる必要があります。
01[010111 10]101100
結果は 01011110 になるはずです
開始ビットがバイトの最後のビットである場合を除いて、任意のビットから始まるバイトを読み取ることができます: 0101011[1 ...] //何か違うものを返します..
私のコードは次のとおりです。
byte readByte(int indexInBits, byte[] bytes)
{
int actualByte = (indexInBits+1)/8;
int indexInByte = (indexInBits)%8;
int b1 = bytes[actualByte] << indexInByte;
int b2 = bytes[actualByte+1] >> 8 - indexInByte;
return (byte)(b1 + b2);
}
それの何が問題なのですか?
ありがとう