什么是用于交换2个整数变量的C代码
what is a C code for swapping 2 integer variables
可能重复:
XOR变量交换是如何工作的
在不使用第三个变量的情况下交换两个变量的值
如何在不使用任何额外变量的情况下编写C代码来交换2个整数变量?
a = a^b;
b = a^b;
a = a^b;
使用XOR(^)运算符
你可以添加:
x = x + y;
y = x - y;
x = x - y;
但我认为XOR是最好的方法,因为它更快
这是一个类似于&
和|
的按位运算符
1^1==0
0^0==0
1^0==1
0^1==1
您可以阅读此以获取更多信息
a = a^b;
b = a^b;
a = a^b;
只需使用XOR运算符即可。只是为了解释
XOR(异或)此操作在两个位(a和b) 。如果两个位中的任何一个为1,但在两者都是。存在,如果两者都不等于1,则结果为0。
例如
a=5; //011
b=6; //100
a = a^b; //a=111
b = a^b; //b=011
a = a^b; //a=100
相关文章:
- 为什么在堆栈和堆上创建变量会产生相同的程序集代码?
- 如何使用可视化代码和平台IO将环境变量注入CPP文件?
- 堆栈粉碎 在我在代码中添加新变量以及一些操作后C++检测到
- C++11:具有互斥锁的线程看到原子变量的值发生变化,尽管这是唯一可以改变它的代码
- 使用 gtest 框架在单元测试代码中检查目标对象的私有变量的最佳实践是什么?
- 使用 ostream 变量删除代码重复
- 在 Metal 着色器代码中,如何定义函数的 in/out 参数变量?
- 函数范围的静态变量如何导致与共享库中函数代码的未来使用不兼容
- 可视化的c++变量赋值使代码正常工作
- 为什么在同一条件变量上使用多个互斥锁会使此代码崩溃?
- 代码样式:在 switch/if 语句的分支中重用控件表达式或控制变量
- 共享或私有 openmp 代码中的结构化类型变量
- C++:此代码可以编译,但引发运行时检查失败 #2 - 围绕变量周围的堆栈'num'已损坏。发生
- 使用额外的变量使计算更容易理解 - (多少)我减慢了代码的速度?
- 如何使用 gcc 内联汇编器代码访问成员变量
- 在链接的程序集文件中,我想从 c++ 调用代码访问变量.是否可以在不触发访问冲突的情况下执行此操作?
- 为什么此代码允许访问私有变量
- 程序告诉我初始化在编写简单的C ++代码时不需要初始化的变量
- 让宏将迭代参数传递到通过宏变量提供的代码体中
- 如何避免 C++ 编译器优化器删除静态变量代码