This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
#include <bits/stdc++.h>
using namespace std;
// n的二进制表示中第k位是几
int main() {
int n = 10; // 1010 k=0表示不动 ,k=1表示右移一位 ,右移其实是指这个数的二进制表示法进行右移,然后再&1来判断奇偶性,来知道这一位是1还是0
for (int k = 3; k >= 0; k--) cout << (n >> k & 1); //这是在把n的每一位二进制都输出出来看看
cout << endl;
//试试10右移3位
cout << (10 >> 3);
//试用计算机里面的反码
unsigned int x = -n; //如果 x是整数,那么占4个字节,就是32位
for (int i = 32; i >= 0; i--) cout << (n >> i & 1); //原码
for (int i = 32; i >= 0; i--) cout << (x >> i & 1); //反码
//为什么计算机里面把反码设计成这个样子?其实是为配合数学中 x+ (-x) =0 这个逻辑.
return 0;
}