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



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

如何在 C 语言中做到这一点?

你的问题是基于误解。价值观是你可以拥有多少或多少东西。你可以有三辆车。表示形式是编码值的方法。如果你有三辆车,你可以把这个值表示为"3"或"III"或"三",它是相同的值。十六进制是一种表示方式。

因此,请考虑以下两位代码:

int i = 3;
int i = 0x3;

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

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

最新更新