打印 char 数组的十六进制表示形式[]

2023-11-23

我有一个 8 字节的数组,我正在尝试打印它的十六进制表示法。使用printf("%x", array)我可以得到第一个字节并将其打印出来,但我得到了"0xffffff9b"或类似的东西。有没有办法获得没有“f”的符号?

我想打印出每个元素,如下所示:

0x9a, 0x43, 0x0D, etc.


This:

printf("%x", array);

很可能会打印address数组第一个元素的十六进制形式。我说“最有可能”是因为尝试打印地址的行为就好像它是一个地址一样unsigned int未定义。如果您确实想打印地址,正确的方法是:

printf("%p", (void*)array);

(在大多数情况下,数组表达式会隐式转换为(“衰减”为)指向数组第一个元素的指针。)

如果你想打印数组的每个元素,你必须明确地这样做。这"%s"format 接受一个指向字符串第一个字符的指针并告诉printf迭代字符串,打印每个字符。没有任何格式可以以十六进制执行此类操作,因此您必须自己执行此操作。

例如,给定:

unsigned char arr[8];

你可以像这样打印元素 5:

printf("0x%x", arr[5]);

或者,如果你想要一个前导零:

printf("0x%02x", arr[5]);

The "%x"格式需要一个unsigned int论证,以及unsigned char您传递的值是隐式的promoted to unsigned int,所以这是类型正确的。您可以使用"%x"打印十六进制数字a throughf小写,"%X"为大写(您在示例中使用了两者)。

(请注意,"0x%02x"如果字节为 8 位,格式效果最佳;这并不能保证,但在您可能使用的任何系统上几乎肯定会出现这种情况。)

我将让您编写适当的循环并决定如何界定输出。

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

打印 char 数组的十六进制表示形式[] 的相关文章

随机推荐

  • 为什么 Xcode 3 显示多个编译器错误或每个实际发生的警告

    当我在 Xcode 中构建时 任何错误或警告都会被重复 因此 在 IDE 中 我在状态栏中的图标附近得到两倍的数字 并且在编辑器中显示黄色或红色气泡的地方 在警告 或错误 的行下方有两条警告行 或错误行 发生 其他人也有这个问题 或者知道如
  • 如何将 SVG 元素设置到页面的图标?

    我的页面上有一个 SVG 元素 我想用它作为页面的图标 我如何在 JavaScript 中执行此操作 这样做是令人震惊地令人费解 您可以看到我的解决方案的实际效果here 方法如下所述 通过 ID 或其他方式获取 HTML 元素 留给读者作
  • 如何在 RMarkdown 的代码块中使用 JavaScript?

    灵感来自这个答案 我想在 R 中使用这个数据框 input lt data frame text c a b c page number c 3 5 6 从文本中创建一个列表 链接到不同的页码 该解决方案描述了如何在 Markdown 中使
  • 如何使用 Jest 获取测试文件上的 window.location.pathname?

    我有反应应用程序是由 create react app 使用笑话和酶进行测试制作的 那么我怎样才能得到的值window location pathname在我的测试文件中 这是我的规格 import React from react imp
  • 无法在远程目录中找到或无法访问 Vagrant box - 不兼容的curl版本

    我刚刚下载了 Vagrant 并进行了设置并安装了 virtual box 我只是无法启动我的项目 vagrant up 我有一个流浪文件等等 我能做些什么 vagrant up Bringing machine default up wi
  • 自定义对象到 JSON 然后返回到自定义对象?

    我见过与此非常相似的问题 但我无法确定它们是否得到了明确的回答 也许我有点笨拙 抱歉 我想要拥有自己的对象的便利性 和清晰度 称其为CardboardBox 它不包含代码 只包含数据 我想将其写入数据库并稍后读回 但显然 它是一种类型Obj
  • 图例中的两种线条样式

    我有一个具有两种线条样式 实线和虚线 的图 我希望它们用于相同的图例条目 下面的代码生成典型的图例 包含两个条目 import matplotlib pyplot as plt import numpy as np xy np linspa
  • Java HashMap 如何处理具有相同哈希码的不同对象?

    根据我的理解我认为 两个对象具有相同的哈希码是完全合法的 如果两个对象相等 使用 equals 方法 则它们具有相同的哈希码 如果两个对象不相等 那么它们不能具有相同的哈希码 我对么 现在 如果正确的话 我有以下问题 这HashMap内部使
  • 如何尽可能高效地处理大量并发磁盘写入请求

    假设以下方法被 net 4 应用程序中的不同线程调用数千次 处理这种情况的最佳方法是什么 了解磁盘是这里的瓶颈 但我希望 WriteFile 方法能够快速返回 数据可达几MB 我们是在谈论线程池 TPL 之类的吗 public void W
  • 如何覆盖在 Spark 中读取 DataFrame 的 parquet 文件

    这是我面临的问题的缩影 我遇到了错误 让我尝试在这里重现它 我正在保存一个DataFrame as a parquet 但是当我重新加载时DataFrame from parquet文件并再次保存为parquet 我收到错误 valuesC
  • lb 指令到底有什么作用?

    我即将进行考试 练习题之一是 假使 假设 t0包含值0x12121212 and t1包含 地址0x1000000 假设内存数据 从地址开始0x1000000 is 88 77 66 55 会有什么价值 t0执行以下代码后 lb t0 0
  • 为什么切片对象在Python中不可散列

    为什么 python 中的切片对象不可散列 gt gt gt s slice 0 10 gt gt gt hash s TypeError Traceback most recent call last
  • Bash 关联字典不起作用(声明:-A:无效选项)

    我已经遵循了每个 bash 字典示例 但没有一个起作用 我现在有了 CONFIG bin bash instance map dev project dev instance map stage project staging declar
  • 针对 switch 语句中的枚举进行编程,这是您的方法吗?

    看一下代码片段 这是我在针对枚举进行编码时通常所做的事情 我有一个带有 InvalidOperationException 的默认转义 我不使用 ArgumentException 或其派生类之一 因为编码是针对私有实例字段而不是传入参数
  • 有没有办法从 Firestore 中仅选择某些字段?

    我正在解决一个函数的性能问题 需要 15 秒才能响应 这会向 firebase 请求所有文档 ErrorID 0 问题是有很多文档 而且它们是非常大的对象 我只需要两个领域 Order and Amount 对于每个文档 有什么方法可以只请
  • 不使用 eval 的嵌套 shell 变量

    我可以摆脱吗eval这里 我正在尝试设置 current database由用户输入确定的适当变量 国家和操作 User input country es action sales Possible variables for curren
  • 如何安装 32 位和 64 位版本的 COM DLL 并“自动选择”?

    我们有一个 DLL COM 服务器 可以在 32 位和 64 位版本中正常编译 但 DLL 对 32 位版本和 64 位版本使用相同的 CLSID 和 AppID 这是可以的还是必须改变 我问这个问题是因为显然在 64 位机器上 我们无法同
  • 如何在 C# 中使用 Java 风格的 throws 关键字?

    在Java中 throws关键字允许方法声明它不会自行处理异常 而是将其抛出给调用方法 C 中有类似的关键字 属性吗 如果没有等效的 如何才能达到相同 或相似 的效果 操作人员正在询问C 相当于 Java 的throws clause 不是
  • 在后台请求 iPhone 位置?

    简单的问题 我有一个应用程序 以 30 秒的间隔记录用户位置 使用 NSTimer 它可以完美地工作 直到应用程序变为 非活动状态 并且 NStimer 停止 因此 我正在寻找保持定位间隔 30 秒 的选项 同时仍然能够记录相当准确的位置数
  • 打印 char 数组的十六进制表示形式[]

    我有一个 8 字节的数组 我正在尝试打印它的十六进制表示法 使用printf x array 我可以得到第一个字节并将其打印出来 但我得到了 0xffffff9b 或类似的东西 有没有办法获得没有 f 的符号 我想打印出每个元素 如下所示