c++ - 在它的 64 位表示中找到数字 n 的第 b 位,带符号
问题描述
设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;
}
但它不适用于所有测试用例......还有另一种方法吗?还是有另一种存储位的方法?有一些特殊的图书馆吗?你能用其他工具更有效地做到这一点吗?你能给我一些关于位掩码的信息吗?以及您应该在何时何地使用它们以及它们有何用处?
解决方案
推荐阅读
- php - 当用户在输入字段文本框中键入文字时,仅将占位符文本向上移动
- vba - 如何使用 VBA 将页码字段逻辑插入 Word 模板的页脚?
- node.js - 无法从 get 函数中检索数据
- html - 在 CSS 中换行以填充垂直空间
- php - 如何获取最后一列的行总和?在 foreach 循环中
- java - Tomcat 服务器上的 HTTP 删除请求
- java - 如何抽象捕获异常 CompletableFutures 以调用方法
- google-sheets - 允许使用 GCP API(例如 Drive、Sheets 等)的角色是什么?
- css - 覆盖 SCSS 属性
- sql - 对多个子查询表使用 count(*) 函数