奇妙判奇偶
平时,咱们判断一个数是奇还是偶时,使用对2取模的方法,今天偶然看到一个新的方法:i& 0x1。该法将i与16进制1按位与,效果是取i二进制最近一位的数值,是0就是偶数,是1就是奇数。测试一下。
#include <iostream>int main(int argc, const char * argv[]) {for(int i = 1 ; i <= 10 ; i++){if(i % 2 == 0){std::cout<<i<<"是偶数, 取模的方法"<<std::endl;}if(!(i & 0x1)){std::cout<<i<<"是偶数,十六进制的方法"<<std::endl;}if(!(i & 0b1)){std::cout<<i<<"是偶数,二进制的方法"<<std::endl;}if(!(i & 01)){std::cout<<i<<"是偶数,八进制的方法"<<std::endl;}if(!(i & 1)){std::cout<<i<<"是偶数,十进制的方法"<<std::endl;}}return 0;
}
输出:
输出:
2是偶数, 取模的方法
2是偶数,十六进制的方法
2是偶数,二进制的方法
2是偶数,八进制的方法
2是偶数,十进制的方法
4是偶数, 取模的方法
4是偶数,十六进制的方法
4是偶数,二进制的方法
4是偶数,八进制的方法
4是偶数,十进制的方法
6是偶数, 取模的方法
6是偶数,十六进制的方法
6是偶数,二进制的方法
6是偶数,八进制的方法
6是偶数,十进制的方法
8是偶数, 取模的方法
8是偶数,十六进制的方法
8是偶数,二进制的方法
8是偶数,八进制的方法
8是偶数,十进制的方法
10是偶数, 取模的方法
10是偶数,十六进制的方法
10是偶数,二进制的方法
10是偶数,八进制的方法
10是偶数,十进制的方法