我正在处理一个 C++ 问题,我必须打印我的课程。我的班级在理论上无限长的数字上存储并执行算术和逻辑运算。它有一个无符号整数数组来保存数字。例如:如果数字是 {a*(2^32) + b} ,则该类将其存储为 {array[0]=b , array[1]=a}。所以它就像一个基数(2^32)。问题是如何将此数字转换为十进制以便我可以打印它?简单地 {a*(2^32) + b} 不会这样做,因为它不适合 unsigned int。我不必存储十进制数,只需打印它。
到目前为止我得到了什么
我曾想过首先将数字转换为二进制(这是一项简单的任务)然后打印它。但同样的问题出现了,因为仍然没有足够大的变量来容纳乘法。
狂野的思想
我想知道我是否可以使用自己的类来保存乘法并使用一些迭代方法进行打印?我还想知道这是否可以通过使用对数来解决?
注意:我不允许使用其他库或其他长类型,例如 double 和 long。虽然我说这是理论上无限的数字,但如果我能找到打印大小为 2 的数组的方法会有所帮助。然后我可以考虑更长的数字。