从char数组中提取十六进制数[关闭]

Posted

技术标签:

【中文标题】从char数组中提取十六进制数[关闭]【英文标题】:Extracting hex numbers from char array [closed] 【发布时间】:2018-07-27 02:16:46 【问题描述】:

我需要从 char* 中提取长度 = 16 的十六进制数, 例如。 fa45cb15 我需要获取每一位的值

如何以正确的方式做到这一点?现在我只是打印printf("%x");

【问题讨论】:

欢迎堆栈溢出。请展示您到目前为止所做的尝试。 欢迎来到 ***.com。请花一些时间阅读the help pages,尤其是名为"What topics can I ask about here?" 和"What types of questions should I avoid asking?" 的部分。也请take the tour 和read about how to ask good questions。最后请学习如何创建Minimal, Complete, and Verifiable Example。 你的意思是bit还是byte?你应该打印吗? "fa" 后跟 "45" 等等? 不清楚你在问什么,请举个例子。 【参考方案1】:

不是很难,你只需要一个循环和一个演员来确保你的数字是无符号的

for (int i = 0; i < 16; ++i)
    printf("%02X", (unsigned char)data[i]);

【讨论】:

我想知道否决票。我是不是搞错了什么? 因为你没有提取每一位? @john 谁知道?目前尚不清楚 OP 的要求是什么,您应该投票结束,而不是回答不清楚的问题。 我觉得你对一个不能清楚表达自己的新手有点苛刻。如果上述答案对 OP 来说是错误的,那么不会造成任何伤害。 FWIW 我认为很清楚 OP 有一个 16 字节数组,他们想以十六进制打印,可能他们想打印或访问位作为附加任务,更有可能他们只想以十六进制打印,以便他们可以看到位自己的价值观。

以上是关于从char数组中提取十六进制数[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

C语言-对字符串二维数组各个元素进行比较-十进制数转化为其他进制数-进行规则矩阵的输出-190225

从C#中的字符串中提取十进制数[重复]

c语言中如何提取二进制数中的某一位?

用C语言将16进制数转化为10进制数 16进制数以字符串形式输入 最好运用数组 谢谢

3. 从键盘上输入一个八进制数,利用指针将其转换为十进制数并输出 C语言 很急

C语言中,怎么把十进制转换成十六进制数