私の機能を見てください:
int getByte(int x, int n) {
int oneOnes = 255 << ( n << 3);
int compute = oneOnes & x;
//FIND A WAY TO RETURN CHAR (NOT INT)
char result = (compute >> (n << 3));
return result;
}
コメントまで、すべてがうまく機能します。つまり、整数x
で開始し、特定のサブセクション ( で指定n
) のみを取得します。それで、私がしたことは、保持したい8ビットを除くすべてをゼロにすることでした。たとえば、入力が次の場合:
1001011 10011011 00101011 01001011
そして、3 番目のビット グループ (右から数えて) のみを保持したい場合、結果は次のようになります。
00000000 10011011 00000000 00000000
だから私はそれを正しく行うことができました。問題は、必要なビットのみを返す必要があることです (ゼロをトリミングして、 としてchar
)。を作成してchar result
それを返しても、返されるのは 32 ビット値のままです。
何か助けはありますか?ありがとう!
明確にするために: については、返品のみ00000000 10011011 00000000 00000000
を希望しています。 10011011
ありがとう!