读书人

互换整数的三种方法

发布时间: 2012-10-30 16:13:36 作者: rapoo

交换整数的三种方法

#include <stdio.h>int main(){//使用temp交换两个整数int a1 = 11;int b1 = 45;int temp = b1;b1 = a1;a1 = temp;printf("使用temp交换11和45: %d  %d\n", a1, b1);//使用异或交换两个整数//a2' = a2 ^ b2//b2' = b2 ^ a2' = b2 ^ a2 ^ b2 = a2//a2'' = a2' ^ b2 = a2 ^ b2 ^ b2 = b2//00000000000000000000000000001011 ^ 00000000000000000000000000101101 = 00000000000000000000000000100110(38)//00000000000000000000000000101101 ^ 00000000000000000000000000100110 = 00000000000000000000000000001011(11)//00000000000000000000000000001011 ^ 00000000000000000000000000100110 = 00000000000000000000000000101101(45)int a2 = 11;int b2 = 45;a2 = a2 ^ b2;b2 = b2 ^ a2;a2 = a2 ^ b2;printf("使用异或交换11和45: %d  %d\n", a2, b2);//使用加减算法交换两个整数//a3' = a3 + b3//b3' = a3' - b3 = a3//a3'' = a3' - b3' = b3int a3 = 11;int b3 = 45;a3 = a3 + b3;b3 = a3 - b3;a3 = a3 - b3;printf("使用加减算法交换11和45: %d  %d\n", a3, b3);return 0;}
?

读书人网 >编程

热点推荐