#include #include #include #include #include #include #include using namespace std; __int64 a[105],b[105],er[105]; __int64 sum,vans,ans,m; __int64 getsum(__int64 x){ if(x==0) return 0; int id=lower_bound(b+1,b+61,x)-b; if(b[id]==x){ return a[id]; } else{ id--; return a[id]+getsum(x-b[id]-1)+x-b[id]; } } int main(){ int i,j,n,T; er[0]=1; a[0]=0; for(i=1;i<=60;i++){ er[i]=er[i-1]*2; b[i]=er[i]-1; a[i]=2*a[i-1]+er[i-1]; } scanf("%d",&T); while(T--){ scanf("%I64d",&m); printf("%I64d\n",getsum(m)); } return 0; }