字符串中的十六进制到字符串中的十进制,反之亦然

时间:2015-06-26 18:45:18

标签: c++ arrays string

我最近一直在创建管理大数字的图书馆。当我说大的时候,我的意思是数百个数字以及更多。这里出现了一个问题 - 我希望能够将数字作为字符串传递并在内部将其转换为二进制表示形式(unsigned char数组)。对十六进制数字来说非常简单。我是这样做的:

void fillArrayfromHexadecimal(const std::string &hexadecimal, unsigned char *const array, const unsigned long long size){
    std::stringstream sstream { };
    for(unsigned long long i = 0; i < size; ++i){
        unsigned long long index {size >= 2 * i ? size - 2 * i : 0};
        unsigned char length { size >= 2 * i ? 2 : 1};
        sstream << std::hex << hexadecimal.substr(index, length);
        sstream >> array[i];
    }
}

以后的数组由构造函数处理。

但我偶然发现了一个问题 - 如何将字符串中的十进制转换为字符串中的十六进制或如何在字符串中执行类比转换十进制 - &gt; char数组?有什么想法或想法吗?

1 个答案:

答案 0 :(得分:-1)

如果您只是存储数字,字符串就足够了。但是如果你要对它们进行任何算术运算,你可能需要一个类来处理大数。你可以找到一篇关于here的优秀文章。