#include <bits/stdc++.h>
using namespace std;
template <class T>
void debug(T a, T b) {
  ;
}
template <class T>
void chmin(T& a, const T& b) {
  if (a > b) a = b;
}
template <class T>
void chmax(T& a, const T& b) {
  if (a < b) a = b;
}
namespace std {
template <class S, class T>
ostream& operator<<(ostream& out, const pair<S, T>& a) {
  out << '(' << a.first << ',' << a.second << ')';
  return out;
}
}  // namespace std
long long int readL() {
  long long int res;
  scanf("%I64d", &res);
  return res;
}
void printL(long long int res) { printf("%I64d", res); }
long long int conv[300];
long long int getv() {
  string s;
  cin >> s;
  reverse((s).begin(), (s).end());
  long long int res = 0;
  for (int i = 0; i < (s.size()); ++i) res += conv[s[i]] << (4 * i);
  return res;
}
long long int dp[20][2][2];
char conv2[] = "0123456789abcdef";
vector<int> itos(long long int n) {
  vector<int> res;
  while (n) {
    res.push_back(n % 16);
    n /= 16;
  }
  reverse((res).begin(), (res).end());
  return res;
}
long long int solve(long long int U) {
  if (U < 0) return 0;
  vector<int> ar = itos(U);
  long long int res = 0;
  for (int i = (1); i < (16); ++i) {
    memset((dp), 0, sizeof(dp));
    int d = ar.size();
    dp[0][1][0] = 1;
    int idx = d - 1 - i / 4, dig = i % 4;
    if (idx < 0) continue;
    for (int j = 0; j < (d); ++j)
      for (int t = 0; t < (2); ++t)
        for (int t2 = 0; t2 < (2); ++t2)
          if (dp[j][t][t2]) {
            for (int k = 0; k < (i + 1); ++k) {
              if (t && ar[j] < k) continue;
              if (j == idx && !(k >> dig & 1)) continue;
              dp[j + 1][t & (ar[j] == k ? 1 : 0)][t2 | (k == i ? 1 : 0)] +=
                  dp[j][t][t2];
            }
          }
    res += dp[d][0][1] + dp[d][1][1];
  }
  return res;
}
int main() {
  for (int i = 0; i < (10); ++i) conv[i + '0'] = i;
  for (int i = 0; i < (6); ++i) conv['a' + i] = 10 + i;
  int q;
  cin >> q;
  while (q--) {
    long long int L = getv();
    long long int R = getv();
    long long int res = solve(R) - solve(L - 1);
    cout << res << endl;
  }
  return 0;
}
