赞
踩
判断是否为偶数
#include<iostream>
using namespace std;
int main() {
int n;
cin >> n;
if (n & 1)
cout << n << "是奇数";
else
cout << n << "是偶数";
return 0;
}
判断一个数n ,是不是2的整数幂:
#include<iostream>
using namespace std;
int main() {
int n;
cin >> n;
if (n & (n - 1)) {
cout << n << "不是2的整数幂";
}
else {
cout << n << "是2的整数幂";
}
return 0;
}
计算一个数的二进制中1的个数:
#include<iostream> using namespace std; void BinaryRecursion(int n)//二进制输出 { int a; a = n % 2; n = n>>1; if (n == 0) ; else BinaryRecursion(n); cout<<a; } int main() { int n,flag = 1,count = 0; cin >> n; while (flag <= n) { if (flag & n) count++; flag <<= 1; } cout << n << " 二进制形式为:" ; BinaryRecursion(n); cout << "\n"; cout << count; return 0; }
#include<iostream> using namespace std; int hammingWeight(int n) { int count = 0; while (n) { if (n & 1) count++; n >>= 1; } return count; } int main() { cout << hammingWeight(38); return 0; }
第二种:
#include<iostream> using namespace std; #include<algorithm> #include<vector> int hammingWeight(int n) { int count = 0; while (n) { count++; n = n & (n - 1);//每次执行都会将最右边的1变为0 } return count; } int main() { cout << hammingWeight(5126); return 0; }
在这里插入代码片
异或的几条性质:
1、交换律:a ^ b=b ^ a
2、结合律:(a ^ b) ^ c == a^ (b ^ c)
3、自反性:对于任何数x都有x^ x=0,x^ 0=x 例如:A^B ^ B = A
乘以2
#include<iostream>
using namespace std;
int main() {
int n;
cin >> n;
cout << (n << 1);
return 0;
}
整除2
#include<iostream>
using namespace std;
int main() {
int n;
cin >> n;
cout << (n >> 1);
return 0;
}
#include<iostream> using namespace std; void BinaryRecursion(int n)//二进制输出 { int a; a = n % 2; n = n >> 1; if (n == 0) ; else BinaryRecursion(n); cout << a; } int main() { int n; cin >> n; cout << n << "二级制形式为:"; BinaryRecursion(n); cout << "\n"; int k; cin >> k; n = (n ^ (1<<(k-1))); cout << "n = " << n<<",二进制形式为:"; BinaryRecursion(n); return 0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。