【发布时间】:2017-09-03 03:06:49
【问题描述】:
我正在尝试将十六进制数字转换为 C++ 中的字符。 我查了一下,但找不到适合我的答案。
这是我的代码:
char mod_tostring(int state, int index, int size) {
int stringAddress = lua_tolstring(state, index, 0);
const char* const Base = (const char* const)stringAddress;
return Base[0];
};
Base[0] 将返回一个十六进制数,如: 0000005B
如果你到这里http://string-functions.com/hex-string.aspx 并将 0000005B 作为输入,它会输出字符“[”。我还将如何输出 [?
【问题讨论】:
-
所以要返回整数值为0x5B的字符?
-
请记住,大多数系统上的 char 只能保存 2 个十六进制值。
-
无论您在哪个基数中显示整数,整数都是相同的。您的意思是
Base[0]是值0x5b(即91),而您想要字符'['?如果这就是你的意思,你不需要做任何事情。 -
数字就是数字。 “十六进制”仅适用于我们如何将数字打印为字符串。你在问:
how do I convert an integer into a hex string?或者你在问,how do I convert a hex string back to an integer? -
@JamesGlenn
'['是 91 是0x5b。它们都是一样的。
标签: c++ string hex memory-editing