这道题的意思是找到比n小的最大k
#include<iostream>
#include<cmath>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<stack>
#include<queue>
#include<map>
const int maxn = 1e5 + 10;
using namespace std;
typedef long long ll;
int main()
{
int t;
cin >> t;
while (t--)
{
int n;
cin >> n;
int ans = 0;
for (int i = 0; i < 30; i++)
{
if (((n >> i) & 1) == 1)ans = i;//n向右移动i位,如果与运算的结果为1,ans的值为n二进制的位数
}
cout << (1 << ans) - 1 << endl;//答案的值为2^ans-1
}
}