设n为整数,0<=b<=63,b为自然数。在带有符号的 64 位表示中找到数字 n 的第 b 位。
T 是测试用例的数量。
这是我的尝试:
#include <iostream>
#define f cin
#define g cout
using namespace std;
int T;
long long n;
int b;
int main()
{
f >> T;
for(int i = 1; i <= T; ++i)
{
f >> n >> b;
int ans = 0;
bool ok = true;
while(n)
{
if(b == ans)
{
g << n % 2;
ok = false;
break;
}
n /= 2;
++ans;
}
if(ok) g << 0;
}
return 0;
}
但它不适用于所有测试用例......还有另一种方法吗?还是有另一种存储位的方法?有一些特殊的图书馆吗?你能用其他工具更有效地做到这一点吗?你能给我一些关于位掩码的信息吗?以及您应该在何时何地使用它们以及它们有何用处?