最近,我正在做一些与位操作有关的事情。到目前为止,我已经尝试了许多位操作。但是我只能进行一次手术。
假设我的整数n = 5;二进制(101),现在我想对这个int执行按位NOT运算,我认为结果是(010),但是结果是-6。
但是当我尝试n =〜(-n)时,结果为4(尽管仍然没有得到正确的输出)。请告诉我为什么显示这种行为是因为我的int不是未签名的。另外,请告诉我实现此操作的理想方法,以便获得正确的输出。
谢谢
您可能想要这个:
n = 5; n = ~n & 0x7;