のような数字があるとしましょう0x448
。バイナリでは、これは0100 0100 1000
.
ビット単位の操作を使用して、ビット 1、2、および 3 をすべて 0 またはすべて 1 に設定するにはどうすればよいですか? 最初の 3 つと言うときは、右端のビットを 0 ビットとしてカウントしています。
たとえば、
1 のビット:
b12 b0
0100 0100 1110
^^^
0 のビット:
b12 b0
0100 0100 0000
^^^
それらを1に設定するには、ビットごとのORをマスク14(0x000e)で使用すると思いますか?しかし、その場合、ビットをクリアするために同様のことを行うにはどうすればよいですか?
関連している:
- C で 1 つのビットをどのように設定、クリア、トグルしますか? (構文は異なりますが、操作は同じです)