解析基数2 ^ 32个数字到十进制(对于理论上无限数字)

时间:2013-05-03 13:22:01

标签: binary precision unsigned double-precision bigint

我正在研究一个C ++问题,我必须打印我的课程。 我的类存储并对理论上无限长的数字进行算术和逻辑运算。它有一个无符号整数数组来保存数字。例如: 如果数字是{a *(2 ^ 32)+ b},则类将其存储为{array [0] = b,array [1] = a}。 所以它就像一些基数(2 ^ 32)。问题是如何将此数字转换为十进制,以便我可以打印它?简单{a *(2 ^ 32)+ b}不会这样做,因为它不适合unsigned int。我不必存储十进制数字,只需打印它。

到目前为止我有什么

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

狂野的想法

我想知道我是否可以使用自己的类来进行乘法运算并使用一些迭代方法进行打印? 我也想知道是否可以通过使用对数来解决这个问题?

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

0 个答案:

没有答案