语言是c ++
我必须从0到n读取一些数据,理论上n可以是无穷大。基于n的值,我必须将数字从十进制更改为该基数,即使其基数为10000.因此,如果我读入5个数字,n = 5,我必须将它们转换为base5。
那就是说,我不知道如何进行转换,但我确信我可以阅读一些文章。但真正令我担忧的是,当我转换为n基数可能是什么类型,我的结果将存储在数组中?长?
一旦我在一些数组中获得转换后的数字,我将如何访问每个数字中的每个数字以便稍后进行操作?
感谢。
答案 0 :(得分:1)
基本上,你要对一个数字执行的大多数操作都是基本不变的。这意味着您可以添加/ sub / mul / div(甚至执行电源/根/日志操作)两个数字,甚至不知道它们的基数。
想一想,当它添加两个无符号的整数时,计算机没有什么特别的,即使你真正使用的是一个32位的base-2数。
您可以使用整数(或您需要的任何数据类型)进行到期,并在显示期间转换基数。
答案 1 :(得分:0)
从小数到基数的转换由除法/模数完成。 x是十进制数,b是目标基数。
在下面,你必须为r,i中的数字创建一个std::map
替换模式。即对于基数16,一些条目将是10 -> A, 11 -> B
。这意味着,您必须考虑非常大的n
的表示形式。