#include <bits/stdc++.h>
#include <iostream>
#include<stdio.h>
#include<math.h>
#include<string.h>
using namespace std;
int main() {
long long int t,n,i,j,k,l,flag,flag1,count,count1,count2,count3,count4,sum,max1,max2,c1,c2,temp,suma,sumb;
// long long int d,c,a,b;
long long int a[300001],b[1001][1001],a1[400001];
scanf("%lld",&t);
for(l=0;l<t;l++)
{
vector< long long int> v1,v2,v;
string s1,s2;
map<long long int,long long int> m;
set<long long int>s;
// char s[300001],s1[300001];
long long int f[400001],f1[105];
for(i=0;i<400001;i++)
f[i]=0;
for(i=0;i<105;i++)
f1[i]=0;
count=0,flag=0,flag1=0,sum=0,max1=0,max2=0,c1=0,c2=0,temp=0,suma=0,sumb=0,count1=0,count2=0,count3=0,count4=0;
long long int max3=0,max4=0,x,y,m1,max5=0;
cin>>x;
n=x;
while(x!=0)
{
v.push_back(x%2);
x=x/2;
}
reverse(v.begin(),v.end());
for(i=0;i<v.size()/2;i++)
{
if(v[i]!=v[v.size()-1-i] && v[i]==1)
{
a[i]=1;
a[v.size()-1-i]=1;
}
else if(v[i]!=v[v.size()-1-i] && v[i]==0)
{
a[i]=0;
a[v.size()-1-i]=0;
}
else
{
a[i]=v[i];
a[v.size()-1-i]=v[i];
}
}
// for(i=0;i<v.size();i++)
// cout<<a[i];
long long int base=1,base1=1;
for(i=v.size()-1;i>=0;i--)
{ if(a[i]==1)
suma=suma+base;
base=base*2;
}
// cout<<n;
cout<<abs(n-suma)<<endl;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8bWF0aC5oPgojaW5jbHVkZTxzdHJpbmcuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogCiAKaW50IG1haW4oKSB7CiAgIGxvbmcgbG9uZyBpbnQgdCxuLGksaixrLGwsZmxhZyxmbGFnMSxjb3VudCxjb3VudDEsY291bnQyLGNvdW50Myxjb3VudDQsc3VtLG1heDEsbWF4MixjMSxjMix0ZW1wLHN1bWEsc3VtYjsKLy8gbG9uZyBsb25nIGludCBkLGMsYSxiOwogIGxvbmcgbG9uZyBpbnQgYVszMDAwMDFdLGJbMTAwMV1bMTAwMV0sYTFbNDAwMDAxXTsKIAogICAgc2NhbmYoIiVsbGQiLCZ0KTsKICAgIGZvcihsPTA7bDx0O2wrKykKICAgIHsKICAgdmVjdG9yPCBsb25nIGxvbmcgaW50PiB2MSx2Mix2OwogICAgc3RyaW5nIHMxLHMyOwogICAgbWFwPGxvbmcgbG9uZyBpbnQsbG9uZyBsb25nIGludD4gbTsKICAgIHNldDxsb25nIGxvbmcgaW50PnM7Ci8vICBjaGFyIHNbMzAwMDAxXSxzMVszMDAwMDFdOwogICAgbG9uZyBsb25nIGludCBmWzQwMDAwMV0sZjFbMTA1XTsKICAgICBmb3IoaT0wO2k8NDAwMDAxO2krKykKICAgICAgZltpXT0wOwogICAgICAgZm9yKGk9MDtpPDEwNTtpKyspCiAgICAgIGYxW2ldPTA7CiAgICBjb3VudD0wLGZsYWc9MCxmbGFnMT0wLHN1bT0wLG1heDE9MCxtYXgyPTAsYzE9MCxjMj0wLHRlbXA9MCxzdW1hPTAsc3VtYj0wLGNvdW50MT0wLGNvdW50Mj0wLGNvdW50Mz0wLGNvdW50ND0wOwogICBsb25nIGxvbmcgaW50IG1heDM9MCxtYXg0PTAseCx5LG0xLG1heDU9MDsKICAgY2luPj54OwogICBuPXg7CiAgICB3aGlsZSh4IT0wKQogICAgewogICAgICAgIHYucHVzaF9iYWNrKHglMik7CiAgICAgICAgeD14LzI7CiAgICB9CiAgICByZXZlcnNlKHYuYmVnaW4oKSx2LmVuZCgpKTsKICAgZm9yKGk9MDtpPHYuc2l6ZSgpLzI7aSsrKQogICB7CiAgICAgICBpZih2W2ldIT12W3Yuc2l6ZSgpLTEtaV0gJiYgdltpXT09MSkKICAgICAgIHsKICAgICAgICAgICBhW2ldPTE7CiAgICAgICAgICAgYVt2LnNpemUoKS0xLWldPTE7CiAgICAgICB9CiAgICAgIGVsc2UgaWYodltpXSE9dlt2LnNpemUoKS0xLWldICYmIHZbaV09PTApCiAgICAgICB7CiAgICAgICAgICAgYVtpXT0wOwogICAgICAgICAgIGFbdi5zaXplKCktMS1pXT0wOwogICAgICAgfQogICAgICAgZWxzZQogICAgICAgewogICAgICAgICAgYVtpXT12W2ldOwogICAgICAgICAgIGFbdi5zaXplKCktMS1pXT12W2ldOyAKICAgICAgIH0KICAgfQogICAvLyBmb3IoaT0wO2k8di5zaXplKCk7aSsrKQogICAvLyBjb3V0PDxhW2ldOwogIGxvbmcgbG9uZyBpbnQgYmFzZT0xLGJhc2UxPTE7CiAgICBmb3IoaT12LnNpemUoKS0xO2k+PTA7aS0tKQogICAgeyBpZihhW2ldPT0xKQogICAgc3VtYT1zdW1hK2Jhc2U7CiAgICAgIGJhc2U9YmFzZSoyOwogICAgfQogICAgCiAgLy8gIGNvdXQ8PG47CiAgICBjb3V0PDxhYnMobi1zdW1hKTw8ZW5kbDsKICAgIH0KCXJldHVybiAwOwp9