将 char 数组转换为 hex 数组 (C++)

2024-05-02

我的问题是将字符数组转换为十六进制数字数组,我需要从字符数组中取出 2 个字符并将它们转换为一个十六进制数字。

这是我的输入:

unsigned char text [1024]= "06fb7405eba8d9e94fb1f28f0dd21fdec55fd54750ee84d95ecccf2b1b48";

这就是我需要的:

unsigned char hexval[1024] = {0x06, 0xfb, 0x74, 0x05, 0xeb, 0xa8, 0xd9, 0xe9, 0x4f, 0xb1, 0xf2, 0x8f, 0x0d, 0xd2, 0x1f, 0xde, 0xc5, 0x5f, 0xd5, 0x47, 0x50, 0xee, 0x84, 0xd9, 0x5e, 0xcc, 0xcf, 0x2b, 0x1b, 0x48};

我找到了功能sscanf()这可以解决我的问题,但我不知道如何在我的输入数组上正确使用它。

我怎样才能实现这种转换?


一些简单的实现

unsigned char text[1024] = "06fb7405eba8d9e94fb1f28f0dd21fdec55fd54750ee84d95ecccf2b1b48";
unsigned char result[512];

int size = 60;

assert(size % 2 == 0);

for (int i = 0; i + 1 < size; i += 2)
{
    std::string s(text + i, text + i + 2);
    auto x = std::stoi(s, 0, 16);
    result[i / 2] = x;
}
// or
for (int i = 0; i + 1 < size; i += 2)
{
    unsigned char c1 = *(text + i);
    unsigned char c2 = *(text + i + 1);
    char buffer[] = { c1, c2, 0 };
    auto x = std::strtol(buffer, 0, 16);
    result[i / 2] = x;
}

在这种情况下,结果是输入大小的一半。两个字符导致结果中的一个值。 如果这是一个时间紧迫的例程,您可以编写自己的数字中两个字符的转换。

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

将 char 数组转换为 hex 数组 (C++) 的相关文章

  • WPF DataGrid 多选

    我读过几篇关于这个主题的文章 但很多都是来自 VS 或框架的早期版本 我想做的是从 dataGrid 中选择多行并将这些行返回到绑定的可观察集合中 我尝试创建一个属性 类型 并将其添加到可观察集合中 它适用于单个记录 但代码永远不会触发多个
  • 如何将 std::string& 转换为 C# 引用字符串

    我正在尝试将 C 函数转换为std string参考C 我的 API 如下所示 void GetStringDemo std string str 理想情况下 我希望在 C 中看到类似的东西 void GetStringDemoWrap r
  • BASIC 中的 C 语言中的 PeekInt、PokeInt、Peek、Poke 等效项

    我想知道该命令的等效项是什么Peek and Poke 基本和其他变体 用 C 语言 类似PeekInt PokeInt 整数 涉及内存条的东西 我知道在 C 语言中有很多方法可以做到这一点 我正在尝试将基本程序移植到 C 语言 这只是使用
  • 在模板类中声明模板友元类时出现编译器错误

    我一直在尝试实现我自己的链表类以用于教学目的 我在迭代器声明中指定了 List 类作为友元 但它似乎无法编译 这些是我使用过的 3 个类的接口 Node h define null Node
  • 在 xaml 中编写嵌套类型时出现设计时错误

    我创建了一个用户控件 它接受枚举类型并将该枚举的值分配给该用户控件中的 ComboBox 控件 很简单 我在数据模板中使用此用户控件 当出现嵌套类型时 问题就来了 我使用这个符号来指定 EnumType x Type myNamespace
  • 类型中的属性名称必须是唯一的

    我正在使用 Entity Framework 5 并且有以下实体 public class User public Int32 Id get set public String Username get set public virtual
  • 机器Epsilon精度差异

    我正在尝试计算 C 中双精度数和浮点数的机器 epsilon 值 作为学校作业的一部分 我在 Windows 7 64 位中使用 Cygwin 代码如下 include
  • std::list 线程push_back、front、pop_front

    std list 线程安全吗 我假设不是这样 所以我添加了自己的同步机制 我认为我有正确的术语 但我仍然遇到问题 每个函数都由单独的线程调用 Thread1 不能等待 它必须尽可能快 std list
  • std::vector 与 std::stack

    有什么区别std vector and std stack 显然 向量可以删除集合中的项目 尽管比列表慢得多 而堆栈被构建为仅后进先出的集合 然而 堆栈对于最终物品操作是否更快 它是链表还是动态重新分配的数组 我找不到关于堆栈的太多信息 但
  • 为什么 GCC 不允许我创建“内联静态 std::stringstream”?

    我将直接前往 MCVE include
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 重载 (c)begin/(c)end

    我试图超载 c begin c end类的函数 以便能够调用 C 11 基于范围的 for 循环 它在大多数情况下都有效 但我无法理解和解决其中一个问题 for auto const point fProjectData gt getPoi
  • 为什么 C# 2.0 之后没有 ISO 或 ECMA 标准化?

    我已经开始学习 C 并正在寻找标准规范 但发现大于 2 0 的 C 版本并未由 ISO 或 ECMA 标准化 或者是我从 Wikipedia 收集到的 这有什么原因吗 因为编写 审查 验证 发布 处理反馈 修订 重新发布等复杂的规范文档需要
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 编译时展开 for 循环内的模板参数?

    维基百科 here http en wikipedia org wiki Template metaprogramming Compile time code optimization 给出了 for 循环的编译时展开 我想知道我们是否可以
  • MySQL Connector C/C API - 使用特殊字符进行查询

    我是一个 C 程序 我有一个接受域名参数的函数 void db domains query char name 使用 mysql query 我测试数据库中是否存在域名 如果不是这种情况 我插入新域名 char query 400 spri
  • 类型或命名空间“MyNamespace”不存在等

    我有通常的类型或命名空间名称不存在错误 除了我引用了程序集 using 语句没有显示为不正确 并且我引用的类是公共的 事实上 我在不同的解决方案中引用并使用相同的程序集来执行相同的操作 并且效果很好 顺便说一句 这是VS2010 有人有什么
  • Mono 应用程序在非阻塞套接字发送时冻结

    我在 debian 9 上的 mono 下运行一个服务器应用程序 大约有 1000 2000 个客户端连接 并且应用程序经常冻结 CPU 使用率达到 100 我执行 kill QUIT pid 来获取线程堆栈转储 但它总是卡在这个位置
  • 使用 WGL 创建现代 OpenGL 上下文?

    我正在尝试使用 Windows 函数创建 OpenGL 上下文 现代版本 基本上代码就是 创建窗口类 注册班级 创建一个窗口 choose PIXELFORMATDESCRIPTOR并设置它 创建旧版 OpenGL 上下文 使上下文成为当前

随机推荐

  • 如何将触发器添加到谷歌云构建中的队列?

    构建触发器应等到同一存储库的前一个触发器完成执行 如果我两次推送到存储库 触发器会同时执行两次 我不希望这种事发生 如何让云触发器等待上一个触发器作业 提前致谢 使用像 Jenkins 这样的构建服务器 它具有 cloudbuild 所缺少
  • 如何使用 wso2 BPEL 创建和部署带有人工任务的 BPEL 流程

    我还没有找到任何有关创建的文档BPEL使用人工任务进行流程WSO2 BPEL 只有一个例子叫做Claims Approval现有的已准备好部署流程 创建该示例流程的文档也不存在 请帮帮我 发现存在类似的问题 但不幸的是该问题没有答案 任何帮
  • 使用单个 shell 脚本运行 React 和 Flask

    我构建了一个使用 ReactJS 作为前端和 Flask 作为中间件的应用程序 我可以使用以下命令序列来执行它 npm start cd Equation Solver python m flask run 执行第一个命令后 我必须打开另一
  • Android 日历视图字体大小

    我正在使用 Xamarin 构建 Android 应用程序 这是我的第一个应用程序 我有一个CalendarView我需要更改当天的字体大小和样式 我尝试了下面的代码 字体颜色改变了 但尺寸太小了 最低 API 级别为 11 目标 API
  • 如何在使用图像创建视频时添加图像变化动画

    我有一组图像 我想通过按顺序播放这些图像来创建视频 我想在图像发生变化时添加不同类型的动画 建议我一些方法或任何解决方案来通过 Cocoa 框架在 Objective C 中实现此功能 这是制作图像视频的工作代码 但请建议我们在制作视频时如
  • Visual Studio 中的监视窗口

    有没有一种方法可以指定在监视窗口中查看对象的哪些成员 而无需扩展具有所有属性的树 例如 p new Point 10 10 将显示在 Watch 的 Value 列中 X 10 Y 10 对于我自己的课程 它总是显示 MyNamespace
  • 将文件从远程服务器复制到谷歌云存储桶

    如何将文件从远程服务器复制到 Google 存储桶 例如 gcloud compute scp username server path to file gs my bucket 这个方法会报错 All sources must be lo
  • 使用 Swift PDF417 解码并生成相同的条形码

    我有以下 PDF417 条形码示例 可以使用在线工具进行解码 例如zxing https zxing org w decode jspx 结果如下 5wwwwwxwww0app5p3pewi0edpeapifxe0ixiwwdfxxi0xf
  • 从 UIImageView 获取上下文

    我可以获取上下文吗 CGContextRef 来自存在UIImageView 详细信息 我有一个指向 xib 文件的控制器链接 在IB中我添加了一个UIImageView并参考它 IBOutlet UIImageView imageView
  • 带 if 语句的可向量化 FIND 函数 MATLAB

    我有一个矩阵u 我想遍历所有行和所有列并执行以下操作 如果元素非零 我返回行索引的值 如果元素为零 则查找该元素之后的下一个非零元素的行索引 我可以使用两个带有 find 函数的 for 循环轻松完成此操作 但我需要多次执行此操作 不是因为
  • 从 createProcess 外部获取的句柄读取

    我正在尝试创建一个进程 并通过我在外部提供的句柄与其进行通信createProcess功能 stdOutH lt openFile logDir gt stdout log ReadWriteMode hSetBuffering stdOu
  • DELETE 语句与 ASP.NET 动态数据中的 REFERENCE 约束冲突

    我有两个表 Application User 和 Application User Access Application User Access 表与 Application User 表具有外键约束 当我删除 Application Us
  • 如何更改图片框(winform)的边框颜色?

    我想根据不同的事件设置图片框周围的边框颜色 样式 是否有属性或功能可以帮助我实现该目标 我一直用的是这个 要更改边框颜色 请从PaintPicturebox 控件的事件处理程序 private void pictureBox1 Paint
  • 使用 global-method-security,访问被拒绝错误将作为 HTTP 500 错误返回

    我尝试使用 Spring Security Annotations 来确保安全 而不是在 XML 中定义规则 它似乎有效 但是当我遇到访问被拒绝错误时 我收到返回的 HTTP 状态代码 500 我在 tomcat 日志文件中没有看到任何异常
  • HttpURLConnection 发送图像、音频和视频文件,参数可以是(String 或 Json String)Android

    我正在分享solution发送一个image audio or a video带有参数的文件使用HttpURL连接 参数可以是 纯字符串或 JSON Android 客户端到 PHP 后端 设想 必须上传媒体文件 带参数的音频 视频和图像
  • 使用 keras.utils.Sequence 多处理和数据库 - 何时连接?

    我正在使用 Keras 和 Tensorflow 后端训练神经网络 数据集不适合 RAM 因此 我将其存储在 Mongo 数据库中并使用子类检索批次keras utils Sequence 一切正常 如果我跑的话model fit gene
  • 安卓卸载通知

    当用户卸载应用程序时有什么方法可以发送通知 如果用户卸载该应用程序 应用程序所有者应该收到以下用户已卸载该应用程序的通知 是否可以 应用程序本身不可能 除非有来自同一作者的其他应用程序可以检查 但我认为有一个可用但复杂的解决方法 应用程序可
  • 如何在 Microsoft bot 框架中仅使用图像的 base64 编码字符串显示图像?

    我尝试了下面的代码 这是我在模拟器中得到的输出 message Attachments Add new Attachment ContentUrl data image jpeg base64 xxxx 数据 uri 图像似乎有最大大小 但
  • Postgresql - 确定从级联删除中删除哪些记录

    我继承了一个相当大的 postgresql 数据库 我们有一个每月运行的作业 用于备份现有数据库并使用我们收到的更新的供应商数据创建一个新数据库 目前有一个小问题 在不深入了解表设置 数据建模内容等细节的情况下 我相信它可以通过简单的删除查
  • 将 char 数组转换为 hex 数组 (C++)

    我的问题是将字符数组转换为十六进制数字数组 我需要从字符数组中取出 2 个字符并将它们转换为一个十六进制数字 这是我的输入 unsigned char text 1024 06fb7405eba8d9e94fb1f28f0dd21fdec5