C语言——交换两个int变量的值,不能使用第三个变量。

交换两个int变量的值,不能使用第三个变量。即 a=3,b=5,交换之后a=5,b=3;

cpp 复制代码
#include<stdio.h>
int main()
{
    int a=3;
    int b=5;
    printf("a=%d b=%d\n",a,b);
    a=a^b;
    b=a^b;
    a=a^b;
    printf("a=%d b=%d\n",a,b);
}

"^"------按位异或操作符,这里的按位的位指的是操作数二进制的位,相同为0相异为1.

3的二进制位为:0000 0000 0000 00011

5的二进制位为:0000 0000 0000 00101

注:

1、任何数按位异或自己本身都为0

cpp 复制代码
int a=3;
a^a=a;

2、0与任何数按位异或都为异或的那个数

cpp 复制代码
int a=3;
0^a=a;

输出的答案:

相关推荐
小白菜又菜4 小时前
Leetcode 3432. Count Partitions with Even Sum Difference
算法·leetcode
wuhen_n5 小时前
LeetCode -- 15. 三数之和(中等)
前端·javascript·算法·leetcode
sin_hielo5 小时前
leetcode 2483
数据结构·算法·leetcode
Nonoas5 小时前
动态代理:发布订阅的高级玩法
java·ide·intellij-idea
程序员-周李斌6 小时前
Java 死锁
java·开发语言·后端
Xの哲學6 小时前
Linux多级时间轮:高精度定时器的艺术与科学
linux·服务器·网络·算法·边缘计算
大头流矢6 小时前
归并排序与计数排序详解
数据结构·算法·排序算法
油泼辣子多加6 小时前
【信创】算法开发适配
人工智能·深度学习·算法·机器学习
一路往蓝-Anbo6 小时前
【第20期】延时的艺术:HAL_Delay vs vTaskDelay
c语言·数据结构·stm32·单片机·嵌入式硬件
皮皮林5516 小时前
Prometheus+Grafana,打造强大的监控与可视化平台
java