如何将二进制值字符串转换回 char

2024-02-17

Example

注意:我只关心字母。所以位集 000001 是a or A.

我有一个string named s与价值"abc"。 我把每一个char of the string并将其转换为二进制值通过 指某东西的用途bitset.

e.g

bitset <6> b1 = s[0];   //a
bitset <6> b2 = s[1];   //b
bitset <6> b3 = s[2];   //c

然后我想将结果放入array of strings。数组的名称是arr(以及每个string of the array将代表每个的二进制值char)

e.g

arr[0]   //will hold the value of char 'a' in binary form which is 000001
arr[1]   //will hold the value of char 'b' in binary form which is 000010
arr[2]   //will hold the value of char 'c' in binary form which is 000011

以及我转换每个的方式char来自string到二进制是

arr[0] = b1.to_string();    //arr[0] is now 000001
arr[1] = b2.to_string();    //arr[1] is now 000010
arr[2] = b3.to_string();    //arr[2] is now 000011

现在我的问题就在这里。 我如何将它们转换回char?

e.g.

//I want each char to take back the each corresponding letter from the binary values

char c1;   //How do i make the arr[0] value of 000001 to become 'a' again?
char c2;   //Same here
char c3;   //And here

假设您想从 ASCII 代码 64 开始,并且'a' (or 'A') 简单来说就是000001在这种情况下,那么你可以简单地做

c1 = static_cast<char>(std::bitset<6>(arr[0]).to_ulong() + 64); // 

'A'十进制表示为65,二进制表示为0b01000001. 'a'十进制表示为97,二进制表示为0b01100001。在您的代码中,您使用bitset<6>储藏'a' (or 'A'). A bitset<6>只能代表2^6符号,即64,所以你会遇到切割。基本上是2最重要的位将被削减。在这种情况下,bitset<6>('A')变成0b000001, i.e. 1以十进制表示,并且bitset<6>('a')变成0b1000001, i.e. 33以十进制表示。您现在可以说服自己重新添加64产生正确的结果。

EDIT

请注意,您还可以使用std::stoi http://en.cppreference.com/w/cpp/string/basic_string/stol(仅限 C++11)将位字符串从基数 2 转换为十进制,如其他答案中所述:

char c1 = static_cast<char>(std::stoi(arr[0], nullptr, 2) + 64);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将二进制值字符串转换回 char 的相关文章

  • 在c#中执行Redis控制台命令

    我需要从 Redis 控制台获取 客户端列表 输出以在我的 C 应用程序中使用 有没有办法使用 ConnectionMultiplexer 执行该命令 或者是否有内置方法可以查找该信息 CLIENT LIST是 服务器 命令 而不是 数据库
  • ComboBox DataBinding 导致 ArgumentException

    我的几个类对象 class Person public string Name get set public string Sex get set public int Age get set public override string
  • 如何判断计算机是否已重新启动?

    我曾经使用过一个命令行 SMTP 邮件程序 作为试用版的限制 它允许您在每个 Windows 会话中最多接收 10 封电子邮件 如果您重新启动计算机 您可能还会收到 10 个以上 我认为这种共享软件破坏非常巧妙 我想在我的应用程序中复制它
  • 使用正则表达式搜索 Ruby 数组

    你好 我有一个小的 ruby 函数 它可以分割出一个 Ruby 数组 如下所示 def rearrange arr from to sidx arr index from eidx arr index to arr sidx arr sid
  • Python 属性和 Swig

    我正在尝试使用 swig 为一些 C 代码创建 python 绑定 我似乎遇到了一个问题 试图从我拥有的一些访问器函数创建 python 属性 方法如下 class Player public void entity Entity enti
  • 类型约束

    我有以下类层次结构 class Header IEnumerable
  • IQueryable 单元或集成测试

    我有一个 Web api 并且公开了一个端点 如下所示 api 假期 name name 这是 Web api 的控制器 get 方法 public IQueryable
  • 在mysql连接字符串中添加应用程序名称/程序名称[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在寻找一种解决方案 在连接字符串中添加应用程序名称或程序名称 以便它在 MySQL Workbench 中的 客户端连接 下可见 SQL
  • C++ int 前面加 0 会改变整个值

    我有一个非常奇怪的问题 如果我像这样声明一个 int int time 0110 然后将其显示到控制台返回的值为72 但是当我删除前面的 0 时int time 110 然后控制台显示110正如预期的那样 我想知道两件事 首先 为什么它在
  • 保护 APK 中的字符串

    我正在使用 Xamarin 的 Mono for Android 开发一个 Android 应用程序 我目前正在努力使用 Google Play API 添加应用内购买功能 为此 我需要从我的应用程序内向 Google 发送公共许可证密钥
  • 高效列出目录中的所有子目录

    请参阅迄今为止所采取的建议的编辑 我正在尝试使用 WinAPI 和 C 列出给定目录中的所有目录 文件夹 现在我的算法又慢又低效 使用 FindFirstFileEx 打开我正在搜索的文件夹 然后我查看目录中的每个文件 使用 FindNex
  • 在屏幕上获取字符

    我浏览了 NCurses 函数列表 似乎找不到返回已打印在屏幕上的字符的函数 每个字符单元格中存储的字符是否有可访问的值 如果没有的话Windows终端有类似的功能吗 我想用它来替换屏幕上某个值的所有字符 例如 所有a s 具有不同的特征
  • 使 Guid 属性成为线程安全的

    我的一个类有一个 Guid 类型的属性 该属性可以由多个线程同时读写 我的印象是对 Guid 的读取和写入不是原子的 因此我应该锁定它们 我选择这样做 public Guid TestKey get lock testKeyLock ret
  • case_when 与部分字符串匹配和 contains()

    我正在使用一个数据集 其中有许多名为 status1 status2 等的列 在这些列中 它表示某人是否豁免 完整 注册等 不幸的是 豁免投入并不一致 这是一个示例 library dplyr problem lt tibble perso
  • 如何在richtextbox中使用多颜色[重复]

    这个问题在这里已经有答案了 我使用 C windows 窗体 并且有 richtextbox 我想将一些文本设置为红色 一些设置为绿色 一些设置为黑色 怎么办呢 附图片 System Windows Forms RichTextBox有一个
  • PHP条件,如果当前页面,则链接突出显示[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我有一个带
  • Objective-C / C 给出枚举默认值

    我在某处读到过关于给枚举默认值的内容 如下所示 typedef enum MarketNavigationTypeNone 0 MarketNavigationTypeHeirachy 1 MarketNavigationTypeMarke
  • 灵气序列解析问题

    我在使用 Spirit Qi 2 4 编写解析器时遇到一些问题 我有一系列键值对以以下格式解析
  • 是否可以在不连接数据库的情况下检索 MetadataWorkspace?

    我正在编写一个需要遍历实体框架的测试库MetadataWorkspace对于给定的DbContext类型 但是 由于这是一个测试库 我宁愿不连接到数据库 它引入了测试环境中可能无法使用的依赖项 当我尝试获取参考时MetadataWorksp
  • 如何使用 C++11 using 语法键入定义函数指针?

    我想写这个 typedef void FunctionPtr using using 我该怎么做呢 它具有类似的语法 只不过您从指针中删除了标识符 using FunctionPtr void 这是一个Example http ideone

随机推荐

  • 如何在c中找到内存分配的最大限制

    我想确定我可以在计算机中分配的最大内存限制是多少 这是我为此任务编写的代码 include
  • 使用 win32inet.WinHttpGetProxyForUrl 的正确方法是什么

    我正在尝试使用 Win32com 开发人员公开的 Microsoft WinHttp 库的一项功能 不幸的是 大多数库似乎没有文档记录 并且没有通过 win32com 库使用 win32inet 功能的正确方法的示例 这是我到目前为止所拥有
  • 有没有办法一次性清除表单中的所有字段?

    我刚刚开始学习 C 我想知道是否可以清除所有文本框的内容 例如我的表单中的内容 我知道如何一一清除 但这对我来说不实用 thanks 编辑 我找到了答案 非常感谢大家 您可以使用以下循环来清除活动表单中的所有文本框对象 foreach Co
  • 在Unity中使用动态关键字/.NET 4.6功能

    我正在尝试将 GraphQL 实现到 Unity3D 版本 2017 1 0f3 Personal 中 我正在使用 NET 4 6 实验版 但尽管如此 Unity 不支持动态关键字 这很奇怪 因为 NET 4 0它是 NET的一部分 除了在
  • Windows批量正则表达式搜索和替换

    我有一组这样的数据 7859 10000 00 7859 10000 00 xfer 1 要检查 1033 1035 32768 000 17 22174479 10000 00 xfer 2 待检查 1032 1035 它们从文件中读取并
  • 承诺不等待完成

    我今天看了很多例子 他们似乎建议以下代码应该在链中执行 let f gt return new Promise res rej gt console log entering function setTimeout gt console l
  • Oracle 如何处理 SQL 中的存储函数调用?

    伙计们 说吧 我有一个疑问 select t value my stored function t value from my table t where my stored function t value n Some Required
  • 更改上传的二进制文件字段的文件名

    我在用着Odoo8 我有一个问题我用过fields binary在 Odoo 中上传文件 但是当我尝试下载它时filename上传文件的内容是型号名称 是否可以更改filename文件的 其次 字段中的过滤器属性不起作用 我对这个问题的解决
  • 在并发环境中从地图中删除是否安全?在戈兰

    我是否需要在从地图上删除该项目之前先上锁 package main import errors sync time type A struct Error error func a A Job more job var l sync RWM
  • 这是什么意思?

    我安装了 pychecker 并注意到我应该用来运行 pychecker 的批处理文件包含以下条目 C Python26 python exe C Python26 Lib site packages pychecker checker p
  • 运行 Angular e2e 测试时如何禁用或绕过 MSAL 身份验证?

    我想为我的 Angular 应用程序设置一些端到端测试 这需要使用 MSAL 库对某些下游服务进行身份验证 当我尝试在本地运行 e2e 测试时 MSAL 库强制我使用用户名 密码进行身份验证 这是一个问题 因为我们的 CI CD e2e 测
  • 来自谷歌云存储的文件列表

    对于我正在做的一个项目 我将文件存储在 Google 的云存储中 并正在构建一个网络应用程序来连接这些文件 我希望我的应用程序显示存储在我的存储桶中的文件列表 或对象可能是适当的名称 我对网络开发和谷歌 API 完全陌生 我一直在研究如何做
  • 如何在 Gradle 中启用自动下载缺少的 Android SDK 包

    2016 年 Google I O 大会期间Android 开发工具的新增功能 https www youtube com watch v csaXml4xtN8很快就提到了一个很棒的新功能 Android Gradle 插件现在可以自动从
  • 我可以扩展参数包并用它定义参数列表吗?

    From 温度变量 http eel is c draft temp variadic 4 工作草案 在我看来 可以在定义另一个模板类或函数的参数列表时扩展参数包 考虑下面的类 template
  • 如何在 Aptana Studio 的文本编辑器中激活自动换行?

    如何在 Aptana Studio 的文本编辑器中激活换行 我对在视图模式下换行感兴趣 以便不必进行水平滚动 尝试在编辑器中右键单击并从上下文菜单中选择 自动换行
  • HTML5网页是否可以接受手写笔输入

    我想创建一个网页 用户可以在其中使用手写笔书写签名 就像您签署包裹或包裹时一样 有谁知道这是否可能 我不确定从哪里开始 但我猜我必须使用元素和 javascript 只要您的客户使用的设备支持使用手写笔进行触摸输入 就完全有可能 你可以看到
  • 是否可以在 Lambda 触发器中修改 AWS Cognito 用户属性

    查看AWS文档 https docs aws amazon com cognito latest developerguide cognito user identity pools working with aws lambda trig
  • 覆盖 jOOQ 对 UpdatableRecords 的异常处理

    我使用的是 jOOQ v2 6 因为我使用的是 SQL Server 2008 R2 并且 jOOQ v3 1 中存在一个错误 导致代码生成失败 我知道这将在 v3 2 中修复 从手册中 Create a new record BookRe
  • scenebulider 无法打开 fxml 文件

    我正在 JavaFX 中创建一个应用程序 我在打开场景构建器时收到此错误 无法打开 Loggin fxml 打开操作失败 请确保所选文件是有效的 fxml 文档 单击 显示详细信息 它向我显示了此错误 java io IOException
  • 如何将二进制值字符串转换回 char

    Example 注意 我只关心字母 所以位集 000001 是a or A 我有一个string named s与价值 abc 我把每一个char of the string并将其转换为二进制值通过 指某东西的用途bitset e g bi