我有一个字符串 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/