如何将二进制值字符串转换回 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 的相关文章

  • 在结构中使用 typedef 枚举并避免类型混合警告

    我正在使用 C99 我的编译器是 IAR Embedded workbench 但我认为这个问题对于其他一些编译器也有效 我有一个 typedef 枚举 其中包含一些项目 并且我向该新类型的结构添加了一个元素 typedef enum fo
  • 秒表有最长运行时间吗?

    多久可以Stopwatch在 NET 中运行 如果达到该限制 它会回绕到负数还是从 0 重新开始 Stopwatch Elapsed返回一个TimeSpan From MSDN https learn microsoft com en us
  • 不支持将数据直接绑定到存储查询(DbSet、DbQuery、DbSqlQuery)

    正在编码视觉工作室2012并使用实体模型作为我的数据层 但是 当页面尝试加载时 上面提到的标题 我使用 Linq 语句的下拉控件往往会引发未处理的异常 下面是我的代码 using AdventureWorksEntities dw new
  • ASP.NET MVC:这个业务逻辑应该放在哪里?

    我正在开发我的第一个真正的 MVC 应用程序 并尝试遵循一般的 OOP 最佳实践 我正在将控制器中的一些简单业务逻辑重构到我的域模型中 我最近一直在阅读一些内容 很明显我应该将逻辑放在域模型实体类中的某个位置 以避免出现 贫血域模型 反模式
  • 类模板参数推导 - clang 和 gcc 不同

    下面的代码使用 gcc 编译 但不使用 clang 编译 https godbolt org z ttqGuL template
  • 从Web API同步调用外部api

    我需要从我的 Web API 2 控制器调用外部 api 类似于此处的要求 使用 HttpClient 从 Web API 操作调用外部 HTTP 服务 https stackoverflow com questions 13222998
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • C++ OpenSSL 导出私钥

    到目前为止 我成功地使用了 SSL 但遇到了令人困惑的障碍 我生成了 RSA 密钥对 之前使用 PEM write bio RSAPrivateKey 来导出它们 然而 手册页声称该格式已经过时 实际上它看起来与通常的 PEM 格式不同 相
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • WCF 中 SOAP 消息的数字签名

    我在 4 0 中有一个 WCF 服务 我需要向 SOAP 响应添加数字签名 我不太确定实际上应该如何完成 我相信响应应该类似于下面的链接中显示的内容 https spaces internet2 edu display ISWG Signe
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • 这些作业之间是否存在顺序点?

    以下代码中的两个赋值之间是否存在序列点 f f x 1 1 x 2 不 没有 在这种情况下 标准确实是含糊不清的 如果你想确认这一点 gcc 有这个非常酷的选项 Wsequence point在这种情况下 它会警告您该操作可能未定义
  • 对现有视频添加水印

    我正在寻找一种用 C 在视频上加水印的方法 就像在上面写文字一样 图片或文字标签 我该怎么做 谢谢 您可以使用 Nreco 视频转换器 代码看起来像 NReco VideoConverter FFMpegConverter wrap new
  • 向现有 TCP 和 UDP 代码添加 SSL 支持?

    这是我的问题 现在我有一个 Linux 服务器应用程序 使用 C gcc 编写 它与 Windows C 客户端应用程序 Visual Studio 9 Qt 4 5 进行通信 是什么very在不完全破坏现有协议的情况下向双方添加 SSL
  • 通过指向其基址的指针删除 POD 对象是否安全?

    事实上 我正在考虑那些微不足道的可破坏物体 而不仅仅是POD http en wikipedia org wiki Plain old data structure 我不确定 POD 是否可以有基类 当我读到这个解释时is triviall
  • cmake 将标头包含到每个源文件中

    其实我有一个简单的问题 但找不到答案 也许你可以给我指一个副本 所以 问题是 是否可以告诉 cmake 指示编译器在每个源文件的开头自动包含一些头文件 这样就不需要放置 include foo h 了 谢谢 CMake 没有针对此特定用例的
  • 如何将带有 IP 地址的连接字符串放入 web.config 文件中?

    我们当前在 web config 文件中使用以下连接字符串 add name DBConnectionString connectionString Data Source ourServer Initial Catalog ourDB P
  • 是否可以在 .NET Core 中将 gRPC 与 HTTP/1.1 结合使用?

    我有两个网络服务 gRPC 客户端和 gRPC 服务器 服务器是用 NET Core编写的 然而 客户端是托管在 IIS 8 5 上的 NET Framework 4 7 2 Web 应用程序 所以它只支持HTTP 1 1 https le
  • C# 模拟VolumeMute按下

    我得到以下代码来模拟音量静音按键 DllImport coredll dll SetLastError true static extern void keybd event byte bVk byte bScan int dwFlags
  • 对来自流读取器的过滤数据执行小计

    编辑问题未得到解答 我有一个基于 1 个标准的过滤输出 前 3 个数字是 110 210 或 310 给出 3 个不同的组 从流阅读器控制台 问题已编辑 因为第一个答案是我给出的具体示例的字面解决方案 我使用的实际字符串长度为 450 个

随机推荐

  • 如何在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