问题描述
我正在尝试实现以下内容(不使用sprintf或格式化):
void integer_to_string(unsigned int a,char *string)
{
char arr[16] = "0123456789abcdef";
char *p = (char *)&a;
unsigned int i;
for (i = 0; i < 4; i++) {
unsigned char lo = p[i] & 0xf;
unsigned char hi = p[i] >> 4;
string[i*2] = arr[hi];
string[i*2+1] = arr[lo];
}
string[2*i] = '\0';
}
此程序正在从整数a转换并将a转换为十六进制并将其余的保存为字符串。因此,应该将一个类似10的整数返回给“ 0000000a”,但是却给了我一个“ 0a000000”的值。我究竟做错了什么?如何将0a移到末尾而不是开始。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)