将无符号长字符串转换为ascii字符串

本文关键字:字符串 ascii 转换 无符号 | 更新日期: 2023-09-27 18:26:01

我需要将无符号长转换为ascii中以"b"为基的字符串

我收到(0<b<16),我需要将其设置在缓冲区中。知道在没有itoa()的情况下如何做到这一点吗??

累计

将无符号长字符串转换为ascii字符串

当然-这很琐碎(遗憾的是,我目前无法编译代码,所以可能有几个拼写错误):

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';

像这样的东西应该能起作用。