将无符号长字符串转换为ascii字符串
本文关键字:字符串 ascii 转换 无符号 | 更新日期: 2023-09-27 18:26:01
我需要将无符号长转换为ascii中以"b"为基的字符串。
我收到长和基(0<b<16),我需要将其设置在缓冲区中。知道在没有itoa()的情况下如何做到这一点吗??
累计
当然-这很琐碎(遗憾的是,我目前无法编译代码,所以可能有几个拼写错误):
std::string convert(unsigned long value, unsigned long base) {
std::string rc;
do {
rc.push_back("0123456789abcde"[value % base]);
} while (base - 1? value /= base: value--);
std::reverse(rc.begin(), rc.end());
return rc;
}
这是伪代码,请原谅我的任何语法错误:
char rem = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}
int base = 6;
int len = 6;
int rm = 0;
int cur = 0;
char *res = (char *)malloc(sizeof(char) * len + 1);
unsigned long num = 123456;
while(num != 0) {
rm = num % base;
res[cur++] = rem[rm]
num = num / base;
}
res[cur] = ''0';
像这样的东西应该能起作用。