Binary 将基数为2^32的数字解析为十进制(对于理论上无限的数字) 我正在处理一个C++问题,我必须打印我的类。 我的类存储并对理论上无限长的数字进行算术和逻辑运算。它有一个包含数字的无符号整数数组。例如: 如果数字是{a*(2^32)+b},则类将其存储为{array[0]=b,array[1]=a}。 所以它就像一个基数(2^32)。问题是如何将该数字转换为十进制,以便打印?简单的{a*(2^32)+b}不行,因为它不适合无符号整数。我不必存储十进制数,只需打印它

Binary 将基数为2^32的数字解析为十进制(对于理论上无限的数字) 我正在处理一个C++问题,我必须打印我的类。 我的类存储并对理论上无限长的数字进行算术和逻辑运算。它有一个包含数字的无符号整数数组。例如: 如果数字是{a*(2^32)+b},则类将其存储为{array[0]=b,array[1]=a}。 所以它就像一个基数(2^32)。问题是如何将该数字转换为十进制,以便打印?简单的{a*(2^32)+b}不行,因为它不适合无符号整数。我不必存储十进制数,只需打印它,binary,precision,unsigned,double-precision,bigint,Binary,Precision,Unsigned,Double Precision,Bigint,到目前为止我得到的 我曾想过先将数字转换成二进制(这是一项简单的任务),然后再打印出来。但同样的问题也出现了,因为仍然没有足够大的变量来容纳乘法运算 疯狂的想法 我想知道我是否可以使用我自己的类来保存乘法,并使用某种迭代方法进行打印? 我还想知道是否可以用对数来解决这个问题 注意:我不允许使用其他库或其他长类型,如double和longer。 虽然我说这是理论上无限的数字,但如果我能找到打印大小为2的数组的方法,这会有所帮助。然后我可以考虑更长的数字。您可以迭代地除以位置,然后将mod除以10,

到目前为止我得到的

我曾想过先将数字转换成二进制(这是一项简单的任务),然后再打印出来。但同样的问题也出现了,因为仍然没有足够大的变量来容纳乘法运算

疯狂的想法

我想知道我是否可以使用我自己的类来保存乘法,并使用某种迭代方法进行打印? 我还想知道是否可以用对数来解决这个问题

注意:我不允许使用其他库或其他长类型,如double和longer。
虽然我说这是理论上无限的数字,但如果我能找到打印大小为2的数组的方法,这会有所帮助。然后我可以考虑更长的数字。

您可以迭代地除以位置,然后将mod除以10,得到数字的每个数字并打印出来。b%10表示一,b/10%10表示十,以此类推,先对b这样做,然后对a这样做。编辑:呃。。。颠倒顺序:P@Murkaeus非常感谢你。起初我不明白你的意思,但现在我实现了它,效果很好:)