#include <bits/stdc++.h>
using namespace std;
int v(int a, int x) { return (a >> x) & 1; }
const int M = 30;
long long dp[31][2][2];
long long solve(int a, int b) {
  if (a == -1 || b == -1) return 0;
  memset(dp, 0, sizeof(dp));
  dp[M][1][1] = 1;
  for (int i = M; i >= 1; i--) {
    int x = v(a, i - 1), y = v(b, i - 1);
    dp[i - 1][0][0] += 3 * dp[i][0][0];
    dp[i - 1][0][y ^ 1] += 2 * dp[i][0][1];
    dp[i - 1][0][1] += y * dp[i][0][1];
    dp[i - 1][x ^ 1][0] += 2 * dp[i][1][0];
    dp[i - 1][1][0] += x * dp[i][1][0];
    dp[i - 1][x ^ 1][y ^ 1] += dp[i][1][1];
    dp[i - 1][x ^ 1][1] += y * dp[i][1][1];
    dp[i - 1][1][y ^ 1] += x * dp[i][1][1];
  }
  return dp[0][0][0] + dp[0][0][1] + dp[0][1][0] + dp[0][1][1];
}
int main() {
  int t;
  scanf("%d", &t);
  while (t--) {
    int l, r;
    scanf("%d %d", &l, &r);
    printf("%I64d\n", solve(r, r) - 2 * solve(r, l - 1) + solve(l - 1, l - 1));
  }
  return 0;
}
