给定非常长的二进制,将其转换为十进制

时间:2014-03-24 08:32:58

标签: c++ binary decimal data-conversion

首先,这是我的一部分。其次,这只是其中的一部分,所以我非常感谢这里的任何提示。

我实现了一种BigInt类,它将数字存储为零和1的序列 - 将十进制存储为二进制。

我的班级可以添加数字并将它们相乘。

好的,但是当我乘以两个大数字时,我得到了一个巨大的数字。

我的问题是 - 给定一个非常长的二进制数,如何将其转换回十进制数?

我发现了一些关于除以10的东西,但我不确定,如果那是我的情况......或者它是,我必须实施二元分割?

...谢谢

1 个答案:

答案 0 :(得分:1)

二进制表示基础2所以,如果您有10100,并且需要基础10,则可以应用以下模式,从最后一个元素到第一个元素(从右到右)左):2^0*0 + 2^1*0 + 2^2*1 + 2^3*0 + 2^4*1 = 20你只需从a0length_of_binary_num-1加注2,然后将该功率乘以字符串中的二进制数字(从右到左)或者你有方法

Convert Binary to Decimal

我也建议使用二进制字符串,因为二进制数字往往看起来更像字符串而不是整数