gpt4 book ai didi

c++ - 手动打印 N 字节整数

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:21:20 25 4
gpt4 key购买 nike

手动打印值不适合 long long 的 N 二进制数字整数的可扩展算法是什么? .我知道printf和 friend ,以及<iostream> (最有可能搭载在 <cstdio> 上的内置标准类型,但我想对由 N 字节组成的整数执行此操作。

我考虑过这个问题并用谷歌搜索了一下,但它总是归结为使用预先存在的 bigint 库,如 GMP(我一点也不熟悉的代码库)或“使用 printf”或最有用的“this很难”。

整数基本上是:

template<size_t N>
class Integer{
...
private:
int8_t first;
uint8_t rest[N-1];
}

所以重新解释 Integer<4>的字节会给你一个 int32_t .我想将其扩展到 N>8。目前,效率并不是我真正关心的问题。字节顺序也不是(这是针对 x86 的)。

最佳答案

第 1 步:定义一个包含字符串格式的 2 的幂的查找表:

const char * const powers_of_two[] = {"1", "2", "4", "8", "16", "32", "64", ...};

第 2 步:编写一个将两个字符串格式的数字相加的函数。

第 3 步:遍历数字中的位并添加与 1 位对应的所有字符串。

第四步:打印结果。

我自己使用这种方法来打印非常大的 float ,它对我来说效果很好。

关于c++ - 手动打印 N 字节整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11036198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com