C++ 如何将输入值分配给 std::bitset 参数?

2023-12-14

我想制作一个简单的程序,它将从输入中获取位数并作为输出显示二进制数,写在给定的位上(例如:我输入 3:它显示 000, 001, 010, 011, 100, 101, 110, 111)。 我遇到的唯一问题是第二个for-循环,当我尝试分配变量时位集bits>,但它需要常数。 如果您能帮助我找到解决方案,我将非常感激。 这是代码:

#include <iostream>
#include <bitset>
#include <cmath>

using namespace std;

int main() {
    int maximum_value = 0,x_temp=10;
    //cin >> x_temp;
    int const bits = x_temp;

    for (int i = 1; i <= bits; i++) {
        maximum_value += pow(2, bits - i);
    }
    for (int i = maximum_value; i >= 0; i--)
        cout << bitset<bits>(maximum_value - i) << endl;
    return 0;
}

数字(C++ 称之为“非类型”)模板参数必须是编译时常量,因此不能使用用户提供的数字。请改用较大的常数(例如 64)。您需要另一个整数来限制您的输出:

int x_temp = 10;
cin >> x_temp;
int const bits = 64;
...

这里 64 是您可以使用的某种最大值,因为bitset有一个构造函数unsigned long long参数,有 64 位(至少;可能更多)。

但是,如果您使用int对于中间计算,您的代码可靠地支持最多 14 位(无溢出)。如果您想支持超过 14 位(例如 64),请使用更大的类型,例如uint32_t or uint64_t.


保留比需要的更多位的问题是额外的位将被显示。要剪掉它们,请使用substr:

cout << bitset<64>(...).to_string().substr(64 - x_temp);

Here to_string将其转换为 64 个字符的字符串,并且substr剪切最后一个字符,其编号为x_temp.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ 如何将输入值分配给 std::bitset 参数? 的相关文章

  • 如何检查图像对象与资源中的图像对象是否相同?

    所以我试图创建一个简单的程序 只需在单击图片框中更改图片即可 我目前只使用两张图片 所以我的图片框单击事件函数的代码 看起来像这样 private void pictureBox1 Click object sender EventArgs
  • 如何验证文件名称在 Windows 中是否有效?

    是否有一个 Windows API 函数可以将字符串值传递给该函数 该函数将返回一个指示文件名是否有效的值 我需要验证文件名是否有效 并且我正在寻找一种简单的方法来完成此操作 而无需重新发明轮子 我正在直接使用 C 但针对的是 Win32
  • ASP.NET Core Serilog 未将属性推送到其自定义列

    我有这个设置appsettings json对于我的 Serilog 安装 Serilog MinimumLevel Information Enrich LogUserName Override Microsoft Critical Wr
  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl
  • pthread_cond_timedwait() 和 pthread_cond_broadcast() 解释

    因此 我在堆栈溢出和其他资源上进行了大量搜索 但我无法理解有关上述函数的一些内容 具体来说 1 当pthread cond timedwait 因为定时器值用完而返回时 它如何自动重新获取互斥锁 互斥锁可能被锁定在其他地方 例如 在生产者
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • 如何在列表框项目之间画一条线

    我希望能够用水平线分隔列表框中的每个项目 这只是我用于绘制项目的一些代码 private void symptomsList DrawItem object sender System Windows Forms DrawItemEvent
  • 当 contains() 工作正常时,xpath 函数ends-with() 工作时出现问题

    我正在尝试获取具有以特定 id 结尾的属性的标签 like span 我想获取 id 以 国家 地区 结尾的跨度我尝试以下xpath span ends with id Country 但我得到以下异常 需要命名空间管理器或 XsltCon
  • 指针问题(仅在发布版本中)

    不确定如何描述这一点 但我在这里 由于某种原因 当尝试创建我的游戏的发布版本进行测试时 它的敌人创建方面不起作用 Enemies e level1 3 e level1 0 Enemies sdlLib 500 2 3 128 250 32
  • 在 Visual Studio 2008 上设置预调试事件

    我想在 Visual Studio 中开始调试程序之前运行一个任务 我每次调试程序时都需要运行此任务 因此构建后事件还不够好 我查看了设置的 调试 选项卡 但没有这样的选项 有什么办法可以做到这一点吗 你唯一可以尝试的 IMO 就是尝试Co
  • 使用 System.Text.Json 即时格式化 JSON 流

    我有一个未缩进的 Json 字符串 例如 hash 123 id 456 我想缩进字符串并将其序列化为 JSON 文件 天真地 我可以使用缩进字符串Newtonsoft如下 using Newtonsoft Json Linq JToken
  • C# 中的递归自定义配置

    我正在尝试创建一个遵循以下递归结构的自定义配置部分
  • 从路径中获取文件夹名称

    我有一些路c server folderName1 another name something another folder 我如何从那里提取最后一个文件夹名称 我尝试了几件事 但没有成功 我只是不想寻找最后的 然后就去休息了 Thank
  • 将自定义元数据添加到 jpeg 文件

    我正在开发一个图像处理项目 C 我需要在处理完成后将自定义元数据写入 jpeg 文件 我怎样才能做到这一点 有没有可用的图书馆可以做到这一点 如果您正在谈论 EXIF 元数据 您可能需要查看exiv2 http www exiv2 org
  • clang 实例化后静态成员初始化

    这样的代码可以用 GCC 编译 但 clang 3 5 失败 include
  • 当操作繁忙时,表单不执行任何操作(冻结)

    我有一个使用 C 的 WinForms 应用程序 我尝试从文件中读取一些数据并将其插入数据表中 当此操作很忙时 我的表单冻结并且无法移动它 有谁知道我该如何解决这个问题 这可能是因为您在 UI 线程上执行了操作 将文件和数据库操作移至另一个
  • 插入记录后如何从SQL Server获取Identity值

    我在数据库中添加一条记录identity价值 我想在插入后获取身份值 我不想通过存储过程来做到这一点 这是我的代码 SQLString INSERT INTO myTable SQLString Cal1 Cal2 Cal3 Cal4 SQ
  • Validation.ErrorTemplate 的 Wpf 动态资源查找

    在我的 App xaml 中 我定义了一个资源Validation ErrorTemplate 这取决于动态BorderBrush资源 我打算定义独特的BorderBrush在我拥有的每个窗口以及窗口内的不同块内
  • 限制C#中的并行线程数

    我正在编写一个 C 程序来生成并通过 FTP 上传 50 万个文件 我想并行处理4个文件 因为机器有4个核心 文件生成需要更长的时间 是否可以将以下 Powershell 示例转换为 C 或者是否有更好的框架 例如 C 中的 Actor 框
  • 恢复上传文件控制

    我确实阅读了以下帖子 C 暂停 恢复上传 https stackoverflow com questions 1048330 pause resume upload in c 使用 HTTP 恢复上传 https stackoverflow

随机推荐

  • 如何使用 AngularJS/Ionic 作为 Backbone/Cordova 项目的一部分?

    我是 AngularJS Ionic 的新手 所以我请求你的帮助 给我们一些关于如何将 AngularJS Ionic 添加到 Backbone 项目的一部分 我们手头上有一个项目 是基于 Cordova 的 Backbone 框架构建的
  • 使用窗口迭代列表

    假设我们有这个列表 L 1 2 3 4 5 6 7 8 n 我们希望通过列表中包含 3 个元素的窗口获得此结果 l1 1 2 3 l2 2 3 4 l3 3 4 5 l4 4 5 6 l6 5 6 7 l7 6 7 8 直到我们迭代数组 并
  • OpenCV CascadeClassifier 错误

    我正在尝试通过网络摄像头进行人脸检测 但出现错误 级联分类器错误 经过一些测试 我发现这行代码产生错误 CascadeClassifier face cascade new CascadeClassifier 我得到的错误是 Excepti
  • 用指针反转 C 中的字符串文字[重复]

    这个问题在这里已经有答案了 我正在尝试使用指针反转字符串文字 通过我的代码收到 SIGSEGV 信号 head tail line char reverse char input int n char temp char head inpu
  • Google Appengine 每日预算未反映在配额中

    亲爱的 AppEngine 人员 我知道所有 AppEngine 支持已转移到 StackOverflow 如果我弄错了 那么很抱歉在这里发布此内容 我有一个非常严重的问题 希望您能帮助我解决 昨天 我在我的应用程序 friendbazaa
  • 如何通过java POI api从Excel工作表中删除所有公式?

    我们可以通过 cell setCellFormula null 从一个单元格中删除公式 但如果我想让整个表格公式免费 See Apache POI 站点这完全回答了你的问题
  • 如何在 PHP 中将一个图像包含在另一个图像中?

    如何在 PHP 中将一个图像包含在另一个图像中 我想像 twitterbackgrounds com 个性化背景那样做到这一点 有一张主图像 我们可以上传四张个人图像 之后它将显示为主图像的水印 我自己从来没有用过GD 但是看看手册中的示例
  • UWSGI 杀死工人的速度太快

    我在我的 web 应用程序中遇到了一个错误 该错误已经工作了一年多了 当我在新实例上切换到 UWSGI 以加快速度时 我遇到了这个错误 我的应用程序有 快速添加 模式窗口 允许用户将新客户添加到数据库中 并立即转到该用户的购物车 所以 该模
  • 在 VBA 中使用 Unicode 文件名(使用 Dir、FileSystemObject 等)

    I am 迭代通过文件夹中的文件 这意味着我不知道文件夹中的名称 并且有一个带有波兰语的文件 特点 The Dir函数将其转换为l这意味着以后无法找到该文件名 我已将要为其分配 dir 值的 var 声明为字符串 我也尝试过 FSO 和 g
  • 按特定键对多维数组进行排序[重复]

    这个问题在这里已经有答案了 我有一个数组 Array 0 gt stdClass Object user id gt 1 ID gt 1 user login gt admin display name gt admin user emai
  • 将每条记录的所有列连接成一个条目

    我正在尝试将表的记录提取到 csv 文件中 SQL 查询很简单 SELECT FROM MY TABLE NAME 给出了假设的记录集 A B C D E F G H I J K L 我想要的是一个记录集 其中所有列都连接在一起 例如 A
  • PHP:将逗号分隔的值对字符串转换为数组

    我有逗号分隔的值对 我想将其转换为 php 中的关联数组 例子 Age 30 Weight 80 Height 180 转换成 Echo obj Weight 80 我的值没有用引号括起来有什么区别吗 我是说 重量 80 VS 重量 80
  • 设置scendantFocusability=“blocksDescendants”后,列表视图行中的文本视图无法单击

    我为列表视图编写了自定义项目布局 该布局有许多小部件 有些小部件有自己的点击监听器 当我单击该行时 有时列表视图的 onListItemClick 起作用 但有时不起作用 经过我一段时间的搜索 我找到了一种方法 设置机器人 descenda
  • 当游乐场被禁用时,apollo-server 返回缺少 GET 查询

    当我效仿的时候production aka playground is disabled 然后我回到我的根 http localhost 9000 我收到以下回复 400 Bad Request GET query missing 有没有办
  • 将当前类作为返回类型注释[重复]

    这个问题在这里已经有答案了 在 python 3 中 我可以创建参数并返回类型注释 例子 class Graph def init self V int E int edges list pass classmethod def fromf
  • 如何创建带有列标题和行标题的 UICollectionView?

    我想创建一个如下所示的 UICollectionView 它不可滚动或可编辑 我目前想知道如何为此编写布局 我猜它不会是的子类UICollectionViewFlowLayout 我可以想到很多方法 但很好奇是否有任何 正确 的方法 这些单
  • 为什么 PHPUnit 代码覆盖率不报告未调用的函数?

    我正在尝试获取我的一个项目的代码覆盖率 但未调用的函数和类不会纳入覆盖率计算 当大块代码被忽略时 很难看出哪些内容 很多 没有被覆盖 在下图中 我希望前三个函数的主体以红色突出显示 至少在执行的函数中未执行的行显示为红色 无论如何 我正在使
  • 如何从ContentView获取ContentPage的BindingContext?

    我有以下 Contentpage content 我在其中设置了某些绑定上下文
  • 影响测量或影响排列

    我正在创建自定义控件 如果依赖项属性之一发生更改 我需要更新布局 我可以使用FrameworkMetadataProperty AffectsMeasure or FrameworkMetadataProperty AffectsArran
  • C++ 如何将输入值分配给 std::bitset 参数?

    我想制作一个简单的程序 它将从输入中获取位数并作为输出显示二进制数 写在给定的位上 例如 我输入 3 它显示 000 001 010 011 100 101 110 111 我遇到的唯一问题是第二个for 循环 当我尝试分配变量时位集bit