实现此操作有三种方法:
1)加减法:
代码如下:
#include<stdio.h>
int main()
{
int a=8,b=5;
printf("after------------\n");
printf("a=%d,b=%d",a,b);
printf("\n");
a=a+b;
b=a-b;
a=a-b;
printf("after------------\n");
printf("a=%d,b=%d",a,b);
printf("\n");
return 0;
}
此操作如果对浮点数进行操作,有可能会丢失一定的精度。
2)乘除法:
代码如下:
#include<stdio.h>
int main()
{
int a=8,b=4;
printf("before----------------\n");
printf("a=%d,b=%d",a,b);
printf("\n");
a=a*b;
b=a/b;
a=a/b;
printf("after----------------\n");
printf("a=%d,b=%d",a,b);
printf("\n");
return 0;
}
此操作如果对浮点数进行操作,有可能会丢失一定的精度。
加减法与乘除法都不会造成溢出!溢出的会在后面溢出回来。以加减法为例,第一步的加
运算可能会造成溢出,但它所造成的溢出会在后边的减运算中被溢出回来。
3)异或法:
代码如下:
#include<stdio.h>
int main()
{
int a=65534,b=30;
printf("before------------\n");
printf("a=%d,b=%d",a,b);
printf("\n");
a=a^b;
b=a^b;
a=a^b;
printf("after------------\n");
printf("a=%d,b=%d",a,b);
printf("\n");
return 0;
}
除此之外还有嵌入汇编代码的方法,还有待学习!