位运算交换两变量
因为 a ^ a = 0, 0 ^ a = a
两次异或不改变原值:a ^ a ^ a = a;
public void swap(int a, int b) {
a = a^b;
b = a^b;
a = a^b;
}
可以简写成:
a ^= b ^= a ^= b;
但不建议这样写,可读性比较差。
因为 a ^ a = 0, 0 ^ a = a
两次异或不改变原值:a ^ a ^ a = a;
public void swap(int a, int b) {
a = a^b;
b = a^b;
a = a^b;
}
可以简写成:
a ^= b ^= a ^= b;
但不建议这样写,可读性比较差。
本文标题:位运算交换两变量
本文链接:https://www.haomeiwen.com/subject/povcpktx.html
网友评论