Пусть n целое число и 0 <= b <= 63, b натуральное число.Найдите b-й бит для числа n в его 64-битном представлении со знаком. </p>
и 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;
}
но это работает не во всех тестовых случаях ... также есть ли другой способ сделать это?или есть другой способ хранить биты?есть ли специальные библиотеки?Вы можете сделать это более эффективно с другими инструментами?Можете ли вы дать мне немного информации о битовых масках?и где и когда вы должны их использовать и как они полезны?