经常遇到需要要对一个数求反,或求补的操作,以前采用的方法很笨,转换为二进制一个一个位的判断的方法.
最近无意中找到一个更简便的方法.其实只要用到"异或"运算就行了
"异或"运算为位相同则为0,位不同则为1.
比如我们将要2个字节的数进行求反的操作时,直接"异或"0xFF就行了,如果是4个字节则"异或"0xFFFF.
int value=100^0xFF;
value=155;
怎么样,这个方法是不是很简单.-_-.
时间: 2024-10-21 11:55:05
经常遇到需要要对一个数求反,或求补的操作,以前采用的方法很笨,转换为二进制一个一个位的判断的方法.
最近无意中找到一个更简便的方法.其实只要用到"异或"运算就行了
"异或"运算为位相同则为0,位不同则为1.
比如我们将要2个字节的数进行求反的操作时,直接"异或"0xFF就行了,如果是4个字节则"异或"0xFFFF.
int value=100^0xFF;
value=155;
怎么样,这个方法是不是很简单.-_-.