//Zory-2020
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
// typedef __int128 ll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
#define FR first
#define SE second
#define MP make_pair
#define PB push_back
#define vc vector
#define all(x) (x).begin(),(x).end()
#define sz(x) ((int)(x).size())
#define bin(x) (1ll<<(x))
#define fo(i,l,r) for(int i=(l),I=(r);i<=I;i++)
#define fd(i,r,l) for(int i=(r),I=(l);i>=I;i--)
#define mem(x,val) memset(x,val,sizeof x)
bool DD=0;
#define Debug if(DD) printf("line %d\n",__LINE__)
#define deb(x) if(DD) cerr<<#x<<'='<<x<<endl
#define debug if(DD) printf
namespace mine
{
ll qread()
{
ll ans=0,f=1;char c=getchar();
while(c<'0' or c>'9') {if(c=='-')f=-1;c=getchar();}
while('0'<=c and c<='9') ans=ans*10+c-'0',c=getchar();
return ans*f;
}
void write(ll num){if(num<0) putchar('-'),num=-num;if(num>=10) write(num/10);putchar('0'+num%10);}
void write1(ll num){write(num);putchar(' ');}
void write2(ll num){write(num);putchar('\n');}
template<typename T>inline bool chmax(T&a,const T&b){return a<b?a=b,1:0;}
template<typename T>inline bool chmin(T&a,const T&b){return a>b?a=b,1:0;}
ll gcd(ll x,ll y){return y?gcd(y,x%y):x;}
bool IN(ll x,ll l,ll r){return l<=x and x<=r;}
const int INF=0x3f3f3f3f;
const int MOD=1e9+7;
int mm(const int x){return x>=MOD?x-MOD:x;}
template<typename T> void add(T &x,const int &y){x=(x+y>=MOD?x+y-MOD:x+y);}
ll qpower(ll x,ll e,int mod=MOD){ll ans=1;while(e){if(e&1)ans=ans*x%mod;x=x*x%mod;e>>=1;}return ans;}
ll invm(ll x){return qpower(x,MOD-2);}
const int N=5e4+10;
ll three[N];
ll calc(pii aa,pii bb)
{
if(aa.SE>bb.SE) swap(aa,bb);
int cnt=0;fo(i,aa.SE,bb.SE-1) cnt+=(aa.FR&bin(i))==0;
debug("(%d,%d),(%d,%d)=%d\n",aa.FR,aa.SE,bb.FR,bb.SE,three[aa.SE]*bin(cnt));
return three[aa.SE]*bin(cnt);
}
ll solve(int R1,int R2)
{
vc<pii> A;fd(i,30,0) if(R1&bin(i)) A.PB( {R1>>(i+1)<<(i+1),i} );
vc<pii> B;fd(i,30,0) if(R2&bin(i)) B.PB( {R2>>(i+1)<<(i+1),i} );
ll ret=0;for(auto x:A) for(auto y:B) if((x.FR&y.FR)==0) ret+=calc(x,y);
debug("%d %d=%d\n",R1,R2,ret);
return ret;
}
void main()
{
three[0]=1;fo(i,1,100) three[i]=three[i-1]*3;
int T=qread();
while(T--)
{
int l=qread(),r=qread();
write2( solve(r+1,r+1)-solve(l,r+1)*2+solve(l,l) );
}
}
};//(ans+MOD)%MOD
signed main()
{
//freopen("a.in","r",stdin);
// freopen("z.txt","r",stdin);
srand(time(0));
mine::main();
}