This question already has answers here:
How do you set, clear, and toggle a single bit?
                                
                                    (28个答案)
                                
                        
                                3年前关闭。
            
                    
是否可以将位设为1时切换为0,设为0时切换为1?例如,00000000通过该功能将00000001,并且00000001再次通过该功能时,00000001将变为00000000。可能吗?

最佳答案

当然。您想要的是对00000001执行逻辑XOR(这称为掩码):

MASK          INPUT     OUTPUT
00000001 XOR 00000000 = 00000001
00000001 XOR 00000001 = 00000000


这也可以切换多个位,例如,如果您的掩码是00001001

MASK          INPUT     OUTPUT
00001001 XOR 00000000 = 00001001
00001001 XOR 00001001 = 00000000
00001001 XOR 00001000 = 00000001
00001001 XOR 00000001 = 00001000

10-06 07:05