在C中使用按位运算符交换数字
问题
如何使用 C 编程语言中的按位运算符交换数字?
解决方案
编译器交换给定的数字,首先,它将给定的十进制数转换为等效的二进制数,然后执行按位异或运算将数字从一个内存位置交换到另一个内存位置。
算法
STARTStep 1: declare two variables a and b
Step 1: Enter two numbers from console
Step 2: swap two numbers by using BITWISE operator
a=a^b
b=a^b
a=a^b
Step 3: Print a and b values
STOP
程序
#include<stdio.h>输出结果int main(){
int a,b;
printf("输入 a 和 b 的值:");
scanf("%d%d",&a,&b);
printf("value of a=%d and b=%d before swap\n",a,b);
a= a^b;
b= a^b;
a= a^b;
printf("value of a=%d and b=%d after swap",a,b);
return 0;
}
输入 a 和 b 的值:24 56value of a=24 and b=56 before swap
value of a=56 and b=24 after swap
Explanation:
a=24 binary equivalent of 24 =011000
b=56 binary equivalent of 56= 111000
a= a^b = 100000
b=a^b=100000 ^ 111000 =011000
a=a^b=100000 ^ 011000 = 111000
Now a=111000 decimal equivalent =56
b= 011000 decimal equivalent = 24
以上是 在C中使用按位运算符交换数字 的全部内容, 来源链接: utcz.com/z/338809.html