![]() |
1
7
|
![]() |
2
8
最小的二进制表示(具有整数精度)可以通过获取数字的日志(以2为基数)来找到。在这种情况下,二进制位的最小数量为log(10^49)=162.77。我们需要一个整数,所以我们就叫它163位。 如果我必须表示这个数字,而浮点表示中的精度不够,我只需要使用一些 BigInteger 图书馆。 |
![]() |
3
4
因为每一个十进制数字传递的信息与
具体来说,从十进制转换为二进制并不难,即使是用手工。只需除以2,然后将模数(如果最后一个数字是奇数,则为1,如果是偶数,则为0)放在二进制结果的末尾。如果您在程序中需要如此高的数字,只需使用平台的大整数实现,例如
噢,二进制的10^49是163位长:
|
![]() |
4
1
可以使用合适的longinteger操作库来转换这些数字。如果不允许使用,阅读源代码可以提供有用的知识,了解如何有效地完成这些工作。 关于比特数,您只需求解方程: 二 n = 10 五十 记日志 二 两个部分: n=log 二 十 五十 现在转换日志 二 记录 十 : n=log 二 十 五十 =原木 十 十 五十 日志 十 2=50/log 十 二 取n的下一个整数(CEIL)-这是所需的位数。 |
![]() |
5
0
1)2^10~10^3,所以10^48~2^160;10^49将是164位的数量。 2)使用biginteger或mpi类(如果您的语言标准API库没有提供,则可以找到大量的biginteger或mpi类)。Knuth知道细节。 |
![]() |
6
0
我将使用一种高级语言来为我处理大整数。IRB(Ruby)会话示例:
|
![]() |
7
0
存储数字X的确切含义是什么?
我的直觉是面试官可能指的是第三个。答案是1位。 |
![]() |
8
0
50位十进制整数的范围从10^49到10^50-1。10^49是163位,10^50-1是167位。如果你想要精确的位数,你需要直接取那些大数字的对数,而不是仅仅计算“捷径”50*对数。 十 (2)。 作为一种选择,你可以 convert the number to binary using an arbitrary precision decimal-binary converter 并计算位(btw,我链接到的转换器为您计算位)。 |
![]() |
Bfyuvf · 直接输入二进制可能的C++[重复] 2 年前 |
![]() |
Mohammed Hashayka · 二进制/CRC分割余数 7 年前 |
![]() |
Daniel · 如何以二进制流格式解析OpenFoam多边形网格? 7 年前 |
|
Reddy90 · 计算二进制表示形式正好需要数字1的数字 7 年前 |