//题目链接SDNU OJ 1385
//异或两个数
//1=1
//1^2=3
//1^2^3=0
//1^2^3^4=4
//~~^5=1
//~~^6=7
//~~^7=0
//~~^8=8
/*
n%4==1 -> 1
n%4==2 ->n+1
n%4==3 -> 0
n%4==0 -> n
从1~a -> 结果=sum1
从1~b -> 结果=sum2
从a~b -> 结果sum3 = sum1^sum2^a = (a+1 ~ b) ^ a
*/
#include <cstdio>
#include <cstring>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <vector>
#include <stack>
#include <sstream>
#include <map>
#include <set>
#include <queue>
using namespace std;
typedef long long ll;
int main()
{
int T;
cin >> T;
while(T--)
{
ll a,b;
cin >> a >> b;
ll sum1,sum2;
if(a%4==1) sum1=1;
else if(a%4==2) sum1=a+1;
else if(a%4==3) sum1=0;
else if(a%4==0) sum1=a;
if(b%4==1) sum2=1;
else if(b%4==2) sum2=b+1;
else if(b%4==3) sum2=0;
else if(b%4==0) sum2=b;
ll sum3=sum1^sum2^a;
cout << sum3 << endl;
}
return 0;
}



京公网安备 11010502036488号