我已经读过处理大数字算术的地方(真的很大)我们应该在max squareroot(MAXNUMBER)的大基数中存储数字。因为在较大的基数中表示数字需要少量的数字,例如在二进制系统中,十进制120 = 1111000。因此,如果我们在大基数中存储大量数据,那么是否会减少最低级别的位数?我不这么认为,因为十六进制数系统中的任何数字肯定会在纸上占用少量数字,但在硬件上则不然。
我想我在这里遗漏了一些东西。有人可以帮我理解如何在比特级别以较少的位数存储大的基数?
答案 0 :(得分:0)
这个想法是用更少的比特来表示数字。您可以将1,000,000,000,002的数字表示为1,000,000 ^ 2。当然,你会失去精确度,但如果它真的很大,你通常不会那么关心精度的损失。
答案 1 :(得分:0)
取决于你想要使用的编码..你总是可以做二进制编码的小数,你可以用四个二进制位编码每个单独的二进制数字,或者你可以使用扩展的二进制表示来表示数字,例如128位数字等..你应该能够找到允许你在线完成上述两种解决方案的库。 P.S BCD对于小数字会占用较小的空间,但对于大数字会占用大量的位数。也许你可以找到一些不太浪费的BCD变种