C语言 操作符 (按位与) | (按位或) ^ (按位异或)
按二进制与。| 按二进制或。^ : 按二进制异或。注意操作数只能是整形1.按位与int main() { int a 3; int b -5; int ret a b; printf(ret %d\n, ret); return 0; }按位与怎么计算的呢1.按位与的原则有 0 则 0全 1 为 1。2.写出数字的二进制补码如果是正数正数的原码反码补码都相同。如果是负数先写出负数的原码符号位不变取反得到反码1得到补码。3.把这2个数字的补码相加。最终得到的结果最终得到的是补码正数的原码反码补码相同所以结果就是3。2.按位或int main() { int a 3; int b -5; int ret a | b; printf(ret %d\n, ret); return 0; }按位与怎么计算的呢1.按位与的原则有 1 则 1全 0 为 0。2.剩下的和按位与是一样的得到的结果看最高位是1说明是个负数这是补码还要取反1得到原码或者-1取反也是可以得到原码的因为这就是-5的补码结果也就是-5。3.按位异或int main() { int a 3; int b -5; int ret a ^ b; printf(ret %d\n, ret); return 0; }按位异与怎么计算的呢1.按位与的原则相 同 为 0相 异 为 1。2.剩下的步骤不变。这次得到的补码需要 取 反 1-1 取 反 得到原码。补码 1111 1111 1111 1111 1111 1111 1111 1000反码1000 0000 0000 0000 0000 0000 0000 0111原码1000 0000 0000 0000 0000 0000 0000 1000而这个原码的数字就是 -8最后也希望对你有所帮助byebye。