#include <bits/stdc++.h>
using namespace std;
const int maxn = 40;
long long dp[maxn][2][2];
int a, b;
long long dfs(int p, int limx, int limy) {
  if (p < 0) return 1;
  long long &res = dp[p][limx][limy];
  if (res != -1) return res;
  res = 0;
  int upx = limx ? ((a >> p) & 1) : 1;
  int upy = limy ? ((b >> p) & 1) : 1;
  for (int i = 0; i <= upx; i++)
    for (int j = 0; j <= upy; j++)
      if (!(i & j)) res += dfs(p - 1, limx && i == upx, limy && j == upy);
  return res;
}
long long cal(int l, int r) {
  if (l < 0) return 0;
  a = l;
  b = r;
  memset(dp, -1, sizeof(dp));
  return dfs(log2(r + 1) + 1, 1, 1);
}
int main() {
  int t;
  scanf("%d", &t);
  int l, r;
  while (t--) {
    scanf("%d%d", &l, &r);
    printf("%I64d\n", cal(r, r) - 2 * cal(l - 1, r) + cal(l - 1, l - 1));
  }
  return 0;
}
