标签:负数 偶数 数据 lob div http turn 补码 返回
原码和补码
原码: x
反码: ~x
补码: y = ~x + 1
移位
使用异或来生成配偶
(0, 1), (2,3 ), (4, 5), (6, 7)为配偶对
0^1 = 1, 1 ^ 1 = 0
2^1 = 3, 3 ^ 1 = 2
4 ^1 = 5, 5 ^ 1= 4
即一个数字异或1得到它的配偶
得到最后一个1:lowit运算
lobit(n) = n & -n;
判断两个数的奇偶性是否相同
异或性质
结合律: (a ^ b) ^ c == a ^ (b ^ c)
对于任何x,有: x ^ x = 0, x ^ 0 = x
自反性: a ^ b ^ b = a
数据范围
判断一个数字每一位上的数字是几
int n = 10;
for (int i = 3; i >= 0; --i) cout << (n >> i & 1);
判断一个数是奇数还是偶数
int n = 10;
if (n & 1) cout << "奇数";
else cout << "偶数" ;
lowbit操作
// 返回最后一个1及其后面的数字:比如10 = (1010)2, 运行一次lowbit,返回10;14 = (1110)2,运行一次lowbit,返回10
int lowbit(int x)
{
return x & -x;
}
标签:负数 偶数 数据 lob div http turn 补码 返回
原文地址:https://www.cnblogs.com/spciay/p/13064118.html