我们如何用一种简单的方法实现对十六进制的数按位翻转功能?
异或的功能是:相同取0,相异取1;
一个数跟0异或,则保持,一个数跟1异或,则翻转;
例如:实现0X01最后一位的翻转,只需要和0X01异或一下。在比如:实现0X01的第二位的翻转 只需要和0X02异或一下。
unsigned char u;
u=0x01;
u ^= 0x01; //最低位和1异或,实现翻转;其他位和0异或,保持不变
我们如何用一种简单的方法实现对十六进制的数按位翻转功能?
异或的功能是:相同取0,相异取1;
一个数跟0异或,则保持,一个数跟1异或,则翻转;
例如:实现0X01最后一位的翻转,只需要和0X01异或一下。在比如:实现0X01的第二位的翻转 只需要和0X02异或一下。
unsigned char u;
u=0x01;
u ^= 0x01; //最低位和1异或,实现翻转;其他位和0异或,保持不变