import java.util.Scanner;
public class Main {
public static String change(int n){
String binary = "";
if(n < 0)
throw new IllegalArgumentException();
if(n==0) {
}
if(n <= 1){
binary = binary + String.valueOf(n);
return binary;
}
else{
binary = change(n/2);
binary = binary + String.valueOf(n % 2);
}
return binary;
}
public static int output(String str) {
String[] temp=new String[2];
temp=str.split(" ");
int num1;
int num2;
num1=Integer.parseInt(temp[0]);
num2=Integer.parseInt(temp[1]);
int difference=num2-num1+1;
int[] nums=new int[difference];
for(int i=0;i<difference;i++) {
nums[i]=num1++;
}
String[] nums2=new String[difference];
for(int i=0;i<difference;i++) {
nums2[i]=change(nums[i]);
nums[i]=0;//
}
int length=nums2[difference-1].length();
for(int i=0;i<difference;i++) {
if(nums2[i].length()!=length) {
nums2[i]=flushLeft(length,nums2[i]);
}
}
int sum=0;
for(int i=0;i<difference-1;i++) {
String temp1=nums2[i];
String temp2=nums2[i+1];
for(int p=0;p<length;p++) {
if(temp1.charAt(p)!=temp2.charAt(p)) {
sum++;
}
}
nums2[i]=null;//
}
return sum;
}
public static String flushLeft(long length, String content){
String str = "";
long cl = 0;
String cs = "";
if (content.length() > length){
str = content;
}else{
for (int i = 0; i < length - content.length(); i++){
cs = cs+"0" ;
}
}
str = cs+content ;
return str;
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int input = scan.nextInt(); //输入用例数量
scan.nextLine();
int num[]=new int[input];
for(int i=0;i<input;i++) {
String str=scan.nextLine();
num[i]=output(str);
}
for(int i=0;i<input;i++) {
System.out.println(num[i]);
}
}
}