Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
.で 16 未満 (4 ビット以下) であることがわかっている値がありますint。私はそれをビットごとにORしたいchar. 私はこれを行うことができます:
int
char
c |= i;
それともエンディアンに依存しますか?問題がある場合は、次のようになります。
c |= (char)i;
それを解決しますか?
エンディアンとは関係ありません。c |= i;単に動作します。
私はこのようなことをすることを好みます。これにより、宛先がソースよりも広い (ビット数が多い) 場合に符号拡張が防止されます。
c = c | (0x0f & i);
また、ソース内のどのビットが抽出対象のビットであるかを確認する役割も果たします。
使ったほうがいいc |= (char)(i);
c |= (char)(i);