#include <bits/stdc++.h>
using namespace std;
// Laskee luvulle, montako sopivaa lukua välillä [0, luku]
int laskuri(long long int luku)
{
// bool potenssit[20];
for (int i = 0; i < 20; ++i)
{
potenssit[i] = 0;
}
int palautus = 0;
long long int talletus;
for (int i = 0; i < 19; ++i)
{
talletus = pow(10, 18 - i);
if (luku > talletus - 1)
{
if (luku < 2 * talletus)
{
palautus += pow(2, 18-i);
// potenssit[18-i] = 1;
luku -= talletus;
}
else
{
palautus += pow(2, 19-i);
// potenssit[19-i] = 1;
break;
}
}
}
if (luku == 0)
{
palautus++;
}
/* for (int i = 0; i < 20; ++i)
{
if (potenssit[i] == 1)
{
palautus += pow(2, i);
}
}*/
return palautus;
}
int main()
{
int riveja;
cin >> riveja;
long long int rivi[riveja][2];
for (int i = 0; i < riveja; ++i)
{
cin >> rivi[i][0];
cin >> rivi[i][1];
}
int vastaus;
for (int i = 0; i < riveja; ++i)
{
// Jälkimmäisestä luvusta vähennetään yksi, koska silloin esim. [1, 1] tulostuu oikein
vastaus = laskuri(rivi[i][1]) - laskuri(rivi[i][0]-1);
cout << vastaus << "\n";
}
// cout << laskuri(11) << "\n";
// cout << pow(2, 11) << "\n";
return 0;
}