3

.で 16 未満 (4 ビット以下) であることがわかっている値がありますint。私はそれをビットごとにORしたいchar. 私はこれを行うことができます:

c |= i;

それともエンディアンに依存しますか?問題がある場合は、次のようになります。

c |= (char)i;

それを解決しますか?

4

4 に答える 4

3

エンディアンとは関係ありません。c |= i;単に動作します。

于 2013-05-08T13:14:33.047 に答える
1

私はこのようなことをすることを好みます。これにより、宛先がソースよりも広い (ビット数が多い) 場合に符号拡張が防止されます。

c = c | (0x0f & i);

また、ソース内のどのビットが抽出対象のビットであるかを確認する役割も果たします。

于 2013-05-08T13:26:11.470 に答える
-3

使ったほうがいいc |= (char)(i);

于 2013-05-08T13:16:00.827 に答える