将字符串中的所有字符转换为十六进制并放入C中的数组中

标签 c arrays string hex

我有一个字符串 unsigned char msg[] = "abcd"; 并希望将其转换为十六进制并将其放入数组中,如下所示:char msg_hex[4 ] = {0x61, 0x62, 0x63, 0x64}; .

我怎样才能用C语言做到这一点?

最佳答案

您的问题是基于误解。值(value)观是你能拥有多少东西。你可以拥有三辆车。表示是对值进行编码的方式。如果您有三辆车,则可以将该值表示为“3”或“III”或“三”,并且它们是相同的值。十六进制是一种表示方法。

所以考虑这两段代码:

int i = 3;

int i = 0x3;

它们都将 i 设置为完全相同的值。他们只是在源代码中使用不同的表示形式。但是 i 持有一个整数,并且实现在内部使用一些内部表示(通常是二进制补码),并且无论哪种方式,该内部表示都是相同的。

所以你的问题没有意义。您只能将值存储在数组中,并且实现始终以任何需要表示这些特定值的方式表示它们。

关于将字符串中的所有字符转换为十六进制并放入C中的数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47248011/

相关文章:

c - C中输出的递归顺序

c - 线程 C 客户端-服务器聊天应用程序中 SIGSEGV 的未知原因

java - 使用 Java 读取包含数组的文件

c - C语言中简单的凯撒密码,无需用户输入

c - 需要帮助调整位图文件的大小

javascript - javascript 中 getOwnPropertyNames 的增量索引

javascript - 在 knockout 阵列中搜索重复条目

java - 如何创建一个组合两个变量的变量?

ios - 使用 NSXMLParser 从 XML 中检索图像

javascript - 将字符串数组减少到最小的可正则表达式值