一切困难都能打倒我 2023-02-19 20:37 采纳率: 87.1%
浏览 24
已结题

关于C语言”^"符号的提问

求问"^"的含义和作用,程序输出5,3.


#include<stdio.h> 
main( )
{ int x=3, y=5;
x=x ^y;
y=x^y;
x=x^y;
printf( "%d,%d\n",x,y);
}

  • 写回答

2条回答 默认 最新

  • Huazie 全栈领域优质创作者 2023-02-19 20:50
    关注
    • ^ 这是 按位异或 操作符,主要是二进制数 每位比较,如果 不相同【1^0 = 1 , 0^1 = 1】,结果就是 1, 如果相同【1^1=0 , 0^0 = 1】,结果就是 0
    • 针对你这里,首先 x = 3, y = 5, 它们的 二进制数 分别位 0011, 0101 ;
    x = 0011 ^ 0101 = 0110  // 十进制数 就是 6 x = 6
    y = 0110 ^ 0101 = 0011 // 十进制数 就是 3 y = 3
    x = 0110 ^ 0011 = 0101 // 十进制数就是 5 x = 5
    //  最后输出 5,3
    

    知识点: 除了使用临时变量进行交换, 使用 异或 ,也是实现 两个数交换的一种方式。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月20日
  • 已采纳回答 2月20日
  • 创建了问题 2月19日

悬赏问题

  • ¥15 报酬10000,做一个简单的换汇网站
  • ¥15 关于#vue.js#的问题:word excel和ppt预览问题语言-javascript)
  • ¥15 Apache显示系统错误3该如何解决?
  • ¥30 uniapp小程序苹果手机加载gif图片不显示动效?
  • ¥20 js怎么实现跨域问题
  • ¥15 C++dll二次开发,C#调用
  • ¥15 请教,如何使用C#加载本地摄像头进行逐帧推流
  • ¥15 Python easyocr无法顺利执行,如何解决?
  • ¥15 为什么会突然npm err!啊
  • ¥15 java服务连接es读取列表数据,服务连接本地es获取数据时的速度很快,但是换成远端的es就会非常慢,这是为什么呢