将无符号短整型转换为char* (例如,将25转换为'25')的有效、可移植的方法是什么?
我希望避免像获取(std::string)字符串这样的事情。在这种情况下,性能很重要,因为这种转换需要快速且频繁地进行。
我正在研究像使用sprintf这样的东西,但我想探索任何和所有的想法。
发布于 2011-01-19 05:26:33
首先,正确地执行它,然后快速执行--只有当您可以确定一段代码不能执行时才进行优化。
snprintf()到一个缓冲区将会做你想做的事情。这是最快的解决方案吗?不用谢。但它是最简单的,它足以让您的代码进入工作状态。从那里开始,如果您发现这些对snprintf()的调用非常费力,需要对其进行优化,那么,也只有在那时,才能找到更快的解决方案。
发布于 2011-01-19 05:34:25
字符串数组,使得
array[25] = "25";
array[26] = "26";
array[255] = "255";也许吧?您可以编写一个小程序,很容易地为您生成表源代码,然后在您的项目中使用此文件。
编辑:我不明白你所说的不想涉及到字符串的意思。
发布于 2011-01-19 06:48:15
试试这个:
int convert(unsigned short val, char* dest)
{
int i = 0;
if (val > 10000)
{
dest[i++] = (val / 10000) | 0x30;
val %= 10000;
}
if (val > 1000)
{
dest[i++] = (val / 1000) | 0x30;
val %= 1000;
}
if (val > 100)
{
dest[i++] = (val / 100) | 0x30;
val %= 100;
}
if (val > 10)
{
dest[i++] = (val / 10) | 0x30;
val %= 10;
}
dest[i++] = (val) | 0x30;
dest[i] = 0;
return i;
}https://stackoverflow.com/questions/4729224
复制相似问题