C语言中的,“与”,“或”,“异或”解释

本文介绍了C语言中常用的位运算符,包括与(&)、或(|)和异或(^)的用法。通过示例代码展示了它们在二进制级别的操作,帮助理解这些运算符如何影响二进制位。重点解析了与运算符在实现逻辑条件判断中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

int main()
{
	int a=2;//取二进制010
	int b=4;//取二进制100
	//int c=a && b;
	int c=a&b;//”&“这个叫“与”,与门中的与,两个都为1的时候才为1,
0与任何数都为0,“|”这个叫“或”,两个都为0的时候才为0,有1取1,“^”这个叫“异或”
	           //存粹的同为0,异为1;
	printf("c=%d\n",c);
	

下图为与的时候的结果

 

### C语言中按位异或操作的用法 #### 基本概念 按位异或(XOR)是一种二元运算,其符号为 `^`。对于两个输入的操作数,如果相应位相同,则结果为0;如果不同,则结果为1[^1]。 #### 运算规则 | A | B | A ^ B | |---|---|-------| | 0 | 0 | 0 | | 0 | 1 | 1 | | 1 | 0 | 1 | | 1 | 1 | 0 | #### 实际应用 按位异或常用于数据加密、错误检测以及某些特定条件下的数值交换等场景。下面是一个简单的例子来说明如何使用按位异或实现两数相加而不借助额外变量存储中间结果: ```c #include <stdio.h> int main() { int a = -2; int b = 3; // 不考虑进位的情况下,a 和 b 的每一位相加的结果可以通过异或获得 int xor_sum = a ^ b; printf("不带进位的和 (A XOR B): %d\n", xor_sum); return 0; } ``` 此程序展示了当忽略可能产生的任何进位时,两个整数各位置上的简单求和可以由异或完成[^2]。 另外,在实际编码过程中也经常利用到这样一个特性——任意数字其自身的异或是零 (`n ^ n == 0`) ,而任一数字零做异或则保持不变(`n ^ 0 == n`) 。这使得我们能够方便地执行诸如翻转特定位者判断奇偶性这样的任务。 例如,要交换两个无符号整型变量的内容而不需第三方临时变量: ```c void swap(int *x, int *y){ if(x != y){ *x ^= *y; *y ^= *x; *x ^= *y; } } ``` 上述函数接受指向两个整数的指针作为参数,并通过连续三次异或操作实现了这两个值之间的互换[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值