#include<bits/stdc++.h>
using namespace std;
const int MAXN=210;
const int mod=998244353;
const int MOD=10010;
long long n,m,k,sum,cnt,a[MAXN],b[MAXN],dp[MAXN],t;
char str[MAXN],s[MAXN];
long long qpow(long long a,long long b){
long long ans=1;
while(b){
if(b&1){
ans=(ans*a);
}
a=(a*a);
b/=2;
}
return ans;
}
int main(){
cin>>t;
a[0]=1;
for(int i=1;i<=200;i++){
a[i]=a[i-1]+i-1;
}
while(t--){
cin>>n>>m;
sum=0;
for(long long i=0;i<=200;i++)
if(m<qpow(2,i)){
k=i;
break;
}
long long x=qpow(2,k)-1;
for(long long i=k-2;i>=0;i--){
if(m>=(x-qpow(2,i))){
sum++;
}
}
for(long long i=1;i<=200;i++){
if(n<qpow(2,i)){
cnt=i;
break;
}
}
long long y=qpow(2,cnt)-1;
for(long long i=0;i<cnt-1;i++){
if(n<=(y-qpow(2,i))){
sum++;
}
}
sum+=a[k-1]-a[cnt];
cout<<sum<<endl;
}
return 0;
}