二进制判断奇偶性

整数中,能被2整除的数是偶数,不能被2整除的数是奇数

  1. boolean isOdd(int n){
  2. return n & 1==0?true:false;//偶数返回true
  3. }

解释:
偶数的第一位二进制一定是 0,奇数的第一位二进制一定是 1

原因:任意一个偶数必然可以表示为:二进制的处理问题 - 图1 任意一个奇数必然可以表示为:二进制的处理问题 - 图2 奇数一定可以表示为一个偶数+1


判断一个整型数的二进制1的个数

判断整型数字的二进制含有几个 1

  1. int CountBinaryOne(int n) {
  2. int count = 0;
  3. while(n) {
  4. count ++;
  5. n = n&(n-1);
  6. }
  7. return count;
  8. }

判断 一个整型数是否是2的n次方

  1. int BoolIsNpow(int n){
  2. if( (n&(n-1)) == 0 )
  3. return 1;
  4. else
  5. return 0;
  6. }

查找最低位的 1

使用位运算 二进制的处理问题 - 图3 取出 二进制的处理问题 - 图4 的二进制表示中最低位的那个 二进制的处理问题 - 图5