重複の可能性:
C で 1 つのビットをどのように設定、クリア、トグルしますか?
アセンブラを作成したいので、32 ビットをビット単位またはフィールド単位で割り当てて、アセンブリから 32 ビット オペコードを作成する必要があります。C でこれを行うにはどうすればよいですか? どうすれば整数にビットを割り当てることができますか? これはできますか?
重複の可能性:
C で 1 つのビットをどのように設定、クリア、トグルしますか?
アセンブラを作成したいので、32 ビットをビット単位またはフィールド単位で割り当てて、アセンブリから 32 ビット オペコードを作成する必要があります。C でこれを行うにはどうすればよいですか? どうすれば整数にビットを割り当てることができますか? これはできますか?
これらの 2 つのマクロを宣言すると、次のことができます。
#define Set_Bit(IntValue, BitNumber) IntValue = IntValue | (1<<BitNumber)
#define Clr_Bit(IntValue, BitNumber) IntValue = IntValue & (~((1) << (BitNumber))))
これらについては以前にいくつかの質問がありました: ビットを設定およびクリアするマクロ