’与‘’或‘’非‘’异或‘逻辑运算

一、‘与’运算

’与‘运算又称逻辑乘,可用符号•或∧表示。
口诀:有0出0,全1为1

A

B

A∧B

0

0

0

0

1

0

1

0

0

1

1

1


二、‘或’运算

’或‘运算又称逻辑加,可用符号+或∨表示。
口诀:有1出1,全0为0

A

B

AB

0

0

0

0

1

1

1

0

1

1

1

1


三、’非‘运算

如变量为A,则它的“非”运算的结果用以下符号表示
口诀:1为0,0为1

如变量为A,则它的“非”运算的结果用这个符号表示

A

0

1

1

0


四、‘异或‘运算

“异或”运算可以用符号

异或符号

两个变量相异时,结果为1

A

B

0

0

0

0

1

1

1

0

1

1

1

0

### C++ 中异或运算符的使用方法 #### 1. **按位 (`&`)** 按位运算符 `&` 对两个操作数的每一位执行逻辑 AND 操作。如果对应的两位都为 1,则结果为 1;否则为 0。 示例代码如下: ```cpp int a = 0b1010; // 十进制表示为 10 int b = 0b0110; // 十进制表示为 6 cout << (a & b) << endl; // 输出 2,因为二进制计算结果为 0b0010 ``` 解释: 对于上述例子,`a` 和 `b` 的二进制形式分别为 `1010` 和 `0110`。逐位进行运算后得到 `0010`,即十进制下的 2[^3]。 --- #### 2. **按位 (`|`)** 按位运算符 `|` 对两个操作数的每一位执行逻辑 OR 操作。只要其中一位为 1,则结果为 1;只有当两者均为 0 时,结果才为 0。 示例代码如下: ```cpp int a = 0b1010; // 十进制表示为 10 int b = 0b0110; // 十进制表示为 6 cout << (a | b) << endl; // 输出 14,因为二进制计算结果为 0b1110 ``` 解释: 在此情况下,`a` 和 `b` 的二进制形式分别是 `1010` 和 `0110`。逐位进行运算后得到 `1110`,即十进制下的 14。 --- #### 3. **按位 (`~`)** 按位运算符 `~` 是一种单目运算符,它对操作数的每一位取反。即将所有的 1 转换为 0,所有的 0 转换为 1。 需要注意的是,在补码系统中,负数是以其绝对值的补码形式存储的。因此,应用按位运算可能会导致意想不到的结果。 示例代码如下: ```cpp int a = 0b0010; // 十进制表示为 2 cout << (~a) << endl; // 输出 -3,因为在补码系统下 ~2 表示 -(2+1) ``` 解释: 假设变量 `a` 存储的内容是 `0010`(即十进制的 2)。对其应用按位运算会将其转换为 `-3`,这是由于计算机内部采用补码机制来表达负数值。 --- #### 4. **按位异或 (`^`)** 按位异或运算符 `^` 对两个操作数的每一位执行 XOR 操作。如果对应位置上的比特不同,则该位置上返回 1;否则返回 0。 示例代码如下: ```cpp int a = 0b1010; // 十进制表示为 10 int b = 0b0110; // 十进制表示为 6 cout << (a ^ b) << endl; // 输出 12,因为二进制计算结果为 0b1100 ``` 解释: 这里,`a` 和 `b` 的二进制形式分别被设定为 `1010` 和 `0110`。通过逐位对比发现它们之间存在差异的位置会被置为 1,最终得出结果 `1100`,也就是十进制下的 12[^5]。 --- ### 总结表格 | 运算符 | 描述 | 示例 | 结果 | |--------|--------------------------|-----------------------|------| | `&` | 按位 | `1010 & 0110` | `0010` | | `|` | 按位 | `1010 | 0110` | `1110` | | `~` | 按位 | `~0010` | `-3` | | `^` | 按位异或 | `1010 ^ 0110` | `1100` | 以上便是 C++ 中四种基本位运算符的功能及其具体实现方式[^1][^2]. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值