rub*_*nvb 5 c++ printing integer arbitrary-precision
什么是可伸缩算法来手动打印其值不适合的N二进制数字整数long long.我知道printf和朋友一起<iostream>(最有可能的背驮式<cstdio>有内置的标准类型,但我想为一个由N个字节组成的整数.
我已经考虑过这个并且用谷歌搜索了一下,但它总是归结为使用像GMP这样的预先存在的bigint图书馆(我根本不熟悉的代码库)或"使用printf"或者最有用的"这很难" .
整数基本上是:
template<size_t N>
class Integer{
...
private:
int8_t first;
uint8_t rest[N-1];
}
Run Code Online (Sandbox Code Playgroud)
所以重新解释一个Integer<4>字节可以得到你int32_t.我想把它缩放到N> 8.目前效率并不是我真正关心的问题.也不是字节序(这是针对x86).
步骤1:以字符串格式定义包含2的幂的查找表:
const char * const powers_of_two[] = {"1", "2", "4", "8", "16", "32", "64", ...};
Run Code Online (Sandbox Code Playgroud)
第2步:编写一个以字符串格式添加两个数字的函数.
步骤3:遍历数字中的位并添加与1位对应的所有字符串.
第4步:打印结果.
我自己用这种方法打印非常大的浮点数,它对我来说很好.
| 归档时间: |
|
| 查看次数: |
242 次 |
| 最近记录: |