我有一个字符串unsigned char msg[] = "abcd";
,想将其转换为十六进制并将其放入数组中,如下所示:char msg_hex[4] = {0x61, 0x62, 0x63, 0x64};
.
如何在 C 语言中做到这一点?
你的问题是基于误解。价值观是你可以拥有多少或多少东西。你可以有三辆车。表示形式是编码值的方法。如果你有三辆车,你可以把这个值表示为"3"或"III"或"三",它是相同的值。十六进制是一种表示方式。
因此,请考虑以下两位代码:
int i = 3;
int i = 0x3;
它们都将i
设置为完全相同的值。它们只是在源代码中使用不同的表示形式。但是i
持有一个整数值,并且实现在内部使用一些内部表示(通常是二进制的补码二进制(,并且无论哪种方式,该内部表示都将是相同的。
所以你的问题没有意义。您只能将值存储在数组中,并且实现始终以表示这些特定值所需的任何方式表示它们。