今天在论坛上逛了逛,发现一个小问题,就是不用额外的空间,交换两个变量的值。例如交换a和b的值。
方法一:
a=a+b;//a等于两数之和
b=a-b;//b等于a的值
a=a-b;//a等于a的值
这种方法有一个问题,就是a+b的值有可能会溢出。
方法二:
a=a^b;
b=a^b;
a=a^b;
这种方法使用异或,完成变量值的交换,不会溢出。
今天在论坛上逛了逛,发现一个小问题,就是不用额外的空间,交换两个变量的值。例如交换a和b的值。
方法一:
a=a+b;//a等于两数之和
b=a-b;//b等于a的值
a=a-b;//a等于a的值
这种方法有一个问题,就是a+b的值有可能会溢出。
方法二:
a=a^b;
b=a^b;
a=a^b;
这种方法使用异或,完成变量值的交换,不会溢出。