ユーザー入力 (一度に EIGHT_BITS または一度に FOUR_BITS) に基づいてバイト配列をデコードするコードを作成しています。私は実際に EIGHT_BITS に基づいてバイト配列をデコードすることに成功しました。ここで、それらを FOUR_BITS でデコードしたいと思います。
INT DecodeElem(UINT8 *decodeBuf, UINT8 elemlen, UINT8 *tempBuf, UINT8 elemlength){
if (elemlength== EIGHT_BITS){
*tempBuf = getByte(decodeBuf + decodeByteCount);
decodeOffset = 0;
decodeByteCount++;
}
}
つまり、elemlength = FOUR_BITS の場合、バイト配列内の特定のバイトの最初の 4 ビットをデコードする必要があります。上で書いた EIGHT_BITS のケースを変更せずに同じことを行う方法を教えてもらえますか?
基本的に必要なのは、if (elemlength == FOUR_BITS) を使用した別の if ステートメントです。
注: tempBuf は CHAR * 型であり、型を変更することはできません。decodeByteCount と decodeOffset はグローバル変数です。*decodeBuf は、デコードする必要があるエンコード済みのバイト配列です。elemlen は将来使用するためのものであり、私はそれを大事にします。
これは私の getByte 関数です:
UINT8 getByte(UINT8 *byteBuf)
{
return ((UINT8)*byteBuf);
}