如何在 C 中使用和不使用 sprintf 将十六进制转换为 Ascii?

2024-03-21

I used strtol要将字符串转换为十六进制,现在我需要将其打印到屏幕上。我不确定是否可以使用sprintf因为我在这块板上只有 20k 内存可以使用。欢迎替代方案。


要手动执行此操作,最简单的方法是使用一个将 nybbles 映射到 ASCII 的表:

static const char nybble_chars[] = "0123456789ABCDEF";

然后将一个字节转换为 2 个十六进制字符——假设unsigned char是字节的最佳表示,但不对其大小进行假设 - 提取每个 nybble 并获取它的 char:

void get_byte_hex( unsigned char b, char *ch1, char *ch2 ) {
    *ch1 = nybble_chars[ ( b >> 4 ) & 0x0F ];
    *ch2 = nybble_chars[ b & 0x0F ];
}

这可以直接扩展到更广泛的数据类型,并且应该在各种体系结构中生成相当简洁的代码。

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

如何在 C 中使用和不使用 sprintf 将十六进制转换为 Ascii? 的相关文章

  • 为什么 C# Array.BinarySearch 这么快?

    我已经实施了一个很简单用于在整数数组中查找整数的 C 中的 binarySearch 实现 二分查找 static int binarySearch int arr int i int low 0 high arr Length 1 mid
  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • 在哪里可以找到列出 SSE 内在函数操作的官方参考资料?

    是否有官方参考列出了 GCC 的 SSE 内部函数的操作 即 头文件中的函数 除了 Intel 的 vol 2 PDF 手册外 还有一个在线内在指南 https www intel com content www us en docs in
  • ASP.NET MVC:这个业务逻辑应该放在哪里?

    我正在开发我的第一个真正的 MVC 应用程序 并尝试遵循一般的 OOP 最佳实践 我正在将控制器中的一些简单业务逻辑重构到我的域模型中 我最近一直在阅读一些内容 很明显我应该将逻辑放在域模型实体类中的某个位置 以避免出现 贫血域模型 反模式
  • 用于检查类是否具有运算符/成员的 C++ 类型特征[重复]

    这个问题在这里已经有答案了 可能的重复 是否可以编写一个 C 模板来检查函数是否存在 https stackoverflow com questions 257288 is it possible to write a c template
  • 类模板参数推导 - clang 和 gcc 不同

    下面的代码使用 gcc 编译 但不使用 clang 编译 https godbolt org z ttqGuL template
  • 在 Windows 窗体中保存带有 Alpha 通道的单色位图会保存不同(错误)的颜色

    在 C NET 2 0 Windows 窗体 Visual Studio Express 2010 中 我保存由相同颜色组成的图像 Bitmap bitmap new Bitmap width height PixelFormat Form
  • C#中如何移动PictureBox?

    我已经使用此代码来移动图片框pictureBox MouseMove event pictureBox Location new System Drawing Point e Location 但是当我尝试执行时 图片框闪烁并且无法识别确切
  • 带动态元素的 WPF 启动屏幕。如何?

    我是 WPF 新手 我需要一些帮助 我有一个加载缓慢的 WPF 应用程序 因此我显示启动屏幕作为权宜之计 但是 我希望能够在每次运行时更改屏幕 并在文本区域中显示不同的引言 这是一个生产力应用程序 所以我将使用非愚蠢但激励性的引言 当然 如
  • 如何设计以 char* 指针作为类成员变量的类?

    首先我想介绍一下我的情况 我写了一些类 将 char 指针作为私有类成员 而且这个项目有 GUI 所以当单击按钮时 某些函数可能会执行多次 这些类是设计的单班在项目中 但是其中的某些函数可以执行多次 然后我发现我的项目存在内存泄漏 所以我想
  • while 循环中的 scanf

    在这段代码中 scanf只工作一次 我究竟做错了什么 include
  • SolrNet连接说明

    为什么 SolrNet 连接的容器保持静态 这是一个非常大的错误 因为当我们在应用程序中向应用程序发送异步请求时 SolrNet 会表现异常 在 SolrNet 中如何避免这个问题 class P static void M string
  • 如何在整个 ASP .NET MVC 应用程序中需要授权

    我创建的应用程序中 除了启用登录的操作之外的每个操作都应该超出未登录用户的限制 我应该添加 Authorize 每个班级标题前的注释 像这儿 namespace WebApplication2 Controllers Authorize p
  • 控件的命名约定[重复]

    这个问题在这里已经有答案了 Microsoft 在其网站上提供了命名指南 here http msdn microsoft com en us library xzf533w0 VS 71 aspx 我还有 框架设计指南 一书 我找不到有关
  • 链接器错误:已定义

    我尝试在 Microsoft Visual Studio 2012 中编译我的 Visual C 项目 使用 MFC 但出现以下错误 error LNK2005 void cdecl operator new unsigned int 2
  • 如何使用 C# / .Net 将文件列表从 AWS S3 下载到我的设备?

    我希望下载存储在 S3 中的多个图像 但目前如果我只能下载一个就足够了 我有对象路径的信息 当我运行以下代码时 出现此错误 遇到错误 消息 读取对象时 访问被拒绝 我首先做一个亚马逊S3客户端基于我的密钥和访问配置的对象连接到服务器 然后创
  • 如何将带有 IP 地址的连接字符串放入 web.config 文件中?

    我们当前在 web config 文件中使用以下连接字符串 add name DBConnectionString connectionString Data Source ourServer Initial Catalog ourDB P
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低

随机推荐

  • 年、月和日参数描述了无法表示的日期时间异常

    我使用以下代码将一个对象添加到 ASP NET MVC 3 应用程序内的列表中 但该对象的属性之一给我带来了困难 ls Add new UserRoleModel UserRoleId 1 UserName Paul InsertDate
  • 如何在 Visual Studio 的输出窗口中隐藏异常类型?

    我正在测试一些东西 输出窗口中充满了异常 如何过滤输出窗口中显示的异常类型 Note 在这种情况下 不可能避免异常 据我所知 隐藏异常类型是不可能的 但要过滤掉所有异常消息 请右键单击输出窗口并取消选中 异常消息
  • 如何捕获 cURL 输出到文件?

    我有一个文本文档 其中包含一堆以下格式的 URL URL sitehere com 我想做的是跑curl K myfile txt 并将 cURL 返回的响应输出放入文件中 我怎样才能做到这一点 curl K myconfig txt o
  • iOS 如何以编程方式检测顶视图控制器何时弹出?

    假设我有一个带有 2 个视图控制器的导航控制器堆栈 VC2 位于顶部 VC1 位于底部 我可以在 VC1 中包含一些代码来检测 VC2 刚刚从堆栈中弹出吗 由于我试图从 VC1 的代码中检测 VC2 的弹出 似乎类似视图将出现 or 查看是
  • 模拟器:在 ubuntu 上找不到 ram.img

    我只是在 Android Studio 3 5 的默认模拟器中设置了带有 API 27 的 Nexus 5x 设备 当我尝试启动设备时 设备在出现第一个 Google 标志后就关闭了 事件日志有以下输出 Emulator statvfs h
  • “无法确定临时目录,请手动指定cache_dir”

    Magento 管理员抛出异常 无法确定临时目录 请手动指定cache dir 这是新的托管包上的全新安装 通常它会发生在共享虚拟主机中 但有时也会发生在个人服务器上 如果 tmp 文件夹的权限设置错误 很多人建议修改该文件 lib Zen
  • 如何为列中的每个唯一值创建新的工作簿?

    我需要为 J 列中的每个唯一值运行 foreach 语句 对于每个唯一名称 我想创建一个新的 Excel 工作簿 复制特定名称的所有行 最后使用相同的唯一值保存工作簿 Sub test Range A1 J17 Select Selecti
  • 无法运行钩子/更新后:没有这样的文件或目录

    谢谢这个http danbarber me using git for deployment http danbarber me using git for deployment 很棒的文章 我设法在 git 控制下拥有一个远程服务器 不幸
  • 如何从 VSTS 下载所有附件?

    我正在尝试根据 ID 号将所有工作项附件从 VSTS 下载到它们自己的文件夹中 如果这是可能的 人们将如何继续实现这一目标 我研究过 REST API 但很困惑 而且我找到的所有文档似乎都是关于 Azure DevOps 的 我目前使用的版
  • 如何从 WMI 获取方法

    tl dr我应该怎么SELECT代替 为了获得方法 更多信息 这是一个例子 using var s new ManagementObjectSearcher root CIMV2 SELECT FROM someClass foreach
  • 如何在Python中使用open函数创建文件?

    在Linux环境中 我想创建一个文件并向其中写入文本 HTMLFILE MYUSER OUTPUT myfolder mytext html f open HTMLFILE w IOError Errno 2 No such file or
  • 如何求矩阵的对角线元素?

    我编写了一个函数来将矩阵的对角线元素存储到向量中 但输出并不如我预期 代码是 diagonal lt function x for i in nrow x for j in ncol x if i j a lt x i j print a
  • pandas 枢轴更改 dtype

    使用 pandas hub table 创建新数据框后 数据类型从 int32 更改为 float 原始数据框 df pd DataFrame from dict my dict orient columns dtype i4 print
  • 当 WooCommerce 中所选变体缺货时显示表单

    在 WooCommerce 中联系表格 7 插件 https wordpress org plugins contact form 7 我使用以下代码在单个产品页面上向我的缺货简单产品添加了一个表单 add action woocommer
  • Java多重继承

    为了完全理解如何解决 Java 的多重继承问题 我有一个需要澄清的经典问题 假设我有课Animal这有子类Bird and Horse我需要上课Pegasus延伸自Bird and Horse since Pegasus既是鸟又是马 我认为
  • 将应用程序从 iPhone 5 设备转换为 iPhone 4 设备

    如何使ios应用程序与iphone4设备 即3 5英寸 兼容 它已经内置在iphone 5 4 0英寸屏幕 中 而无需创建不同的xib 使用自动布局允许您的应用程序正确调整大小到正确的屏幕尺寸 Raywenderlich com 有一个很好
  • 使用 xml 和可重用的 xslt 动态生成 HTML 表单

    我有大量的 xml 文件 First
  • 支持哪些 git url 格式?

    Git 接受许多不同的 url 格式 例如 ssh http https 等 是否有任何规范 官方文档可以在其中找到受支持的 git url 格式 我写了一个git url 解析器 https github com IonicaBizau
  • 在 R 和 RStudio 中读取 URL

    当我在 RStudio 中输入以下内容时 它工作正常 nyt1 lt read csv url http stat columbia edu rachel datasets nyt1 csv 但是当我在 R 控制台中输入相同的内容时 我收到
  • 如何在 C 中使用和不使用 sprintf 将十六进制转换为 Ascii?

    I used strtol要将字符串转换为十六进制 现在我需要将其打印到屏幕上 我不确定是否可以使用sprintf因为我在这块板上只有 20k 内存可以使用 欢迎替代方案 要手动执行此操作 最简单的方法是使用一个将 nybbles 映射到