已结束 第四届“灵犀杯”算法设计大赛

A70063 | 小信在写作业的时候被数学问题折磨,因为很多…

时间限制1s
内存限制128MB
通过 / 提交0/0

题目描述

```cpp
4. 按位或(|):a | b 对 a 和 b 的每一位进行或运算,只要对应位有一个为 1 结果位就为 1。

5. 按位异或(^):a ^ b 对 a 和 b 的每一位进行异或运算,对应位不同时结果位为 1,相同时为 0。

6. 按位取反(~):~a 对 a 的每一位取反,0 变 1,1 变 0。但此时的结果是补码形式,需要转换为原码,再转换为十进制数字

7. 在 C++ 里,原码、反码和补码是用来表示有符号整数的三种编码方式,它们在计算机的运算和存储中发挥着关键作用
①原码是最直观的整数表示方法,它用最高位作为符号位(0 代表正数,1 代表负数),其余位用来表示数值的绝对值。

例如:
假设使用 8 位二进制来表示整数:
+5 的原码是 0000 0101
-5 的原码是 1000 0101

②反码的规则是:正数的反码和原码相同;负数的反码是在原码的基础上,符号位保持不变,其余位按位取反。

例如:同样以 8 位二进制为例:
+5 的原码是 0000 0101,其反码也是 0000 0101
-5 的原码是 1000 0101,其反码是 1111 1010

③补码的规则是:正数的补码和原码、反码相同;负数的补码是在反码的基础上加 1。

例如:
还是以 8 位二进制为例:
+5 的原码是 0000 0101,其补码同样是 0000 0101。
-5 的原码是 1000 0101,反码是 1111 1010,补码则是 1111 1011

8. 为什么使用补码
在计算机中,使用补码表示有符号整数主要是为了简化加减法运算。通过补码,计算机可以用加法器来实现减法运算,从而减少硬件的复杂度。例如,计算 5 - 3 可以转化为 5 + (-3),使用补码进行运算可以得到正确的结果。

```
C++ 编辑器
输入
输出