#pragma GCC optimize("Ofast")
#pragma GCC target("avx,avx2,fma")
#pragma GCC optimization ("unroll-loops")
#include<bits/stdc++.h>
using namespace std;
int T,limit[65];
long long f[65][65][65];
signed pcnt;
long long dfs(signed pos,signed cnt1,bool islim){
if(pos+1<cnt1||cnt1<0) return 0;
if(pcnt==0) return 0;
if(pos==0){
if(cnt1==0) return 1;
else{
if(islim){
if(limit[pos]&&pcnt==1) return 0;
if(limit[pos]) return 1;
return 0;
}
else{
if(pcnt==1) return 0;
return 1;
}
}
}
else if(pos>pcnt+1){
if(islim){
if(limit[pos]) return dfs(pos-1,cnt1,0)+dfs(pos-1,cnt1-1,1);
return dfs(pos-1,cnt1,1);
}
else{
if(f[pos][pcnt][cnt1]!=-1) return f[pos][pcnt][cnt1];
return f[pos][pcnt][cnt1]=dfs(pos-1,cnt1,0)+dfs(pos-1,cnt1-1,0);
}
}
else if(pos==pcnt+1){
if(islim){
if(!limit[pos]) return 0;
return dfs(pos-1,cnt1-1,1);
}
else{
if(f[pos][pcnt][cnt1]!=-1) return f[pos][pcnt][cnt1];
return f[pos][pcnt][cnt1]=dfs(pos-1,cnt1-1,0);
}
}
else if(pos==pcnt){
if(islim){
if(limit[pos]) return dfs(pos-1,cnt1,0)+dfs(pos-1,cnt1-1,1);
return dfs(pos-1,cnt1,1);
}
else{
if(f[pos][pcnt][cnt1]!=-1) return f[pos][pcnt][cnt1];
return f[pos][pcnt][cnt1]=dfs(pos-1,cnt1,0)+dfs(pos-1,cnt1-1,0);
}
}
else if(pos==pcnt-1){
if(islim){
if(limit[pos]) return dfs(pos-1,cnt1,0);
return dfs(pos-1,cnt1,1);
}
else{
if(f[pos][pcnt][cnt1]!=-1) return f[pos][pcnt][cnt1];
return f[pos][pcnt][cnt1]=dfs(pos-1,cnt1,0);
}
}
else if(pos<pcnt-1){
if(islim){
if(limit[pos]) return dfs(pos-1,cnt1,0)+dfs(pos-1,cnt1-1,1);
return dfs(pos-1,cnt1,1);
}
else{
if(f[pos][pcnt][cnt1]!=-1) return f[pos][pcnt][cnt1];
return f[pos][pcnt][cnt1]=dfs(pos-1,cnt1,0)+dfs(pos-1,cnt1-1,0);
}
}
}
inline long long calc(unsigned long long lim){
if(lim<0) return 0;
limit[64]=0;
for(int i=0;i<64;i++)
if((lim>>i)&1) limit[i]=1;
else limit[i]=0;
long long res=0;
for(int i=0;i<64;i++) pcnt=i,res+=dfs(64,i,1);
return res;
}
signed main(){
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
memset(f,-1,sizeof(f));
cin>>T;
while(T--){
unsigned long long L,R;
cin>>L>>R;
if(L==0) cout<<(R+1)-calc(R)<<'\n';
else cout<<(R-L+1)-(calc(R)-calc(L-1))<<'\n';
}
return 0;
}