Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Types 面试-整数的大小_Types_Computer Science_Primitive Types - Fatal编程技术网

Types 面试-整数的大小

Types 面试-整数的大小,types,computer-science,primitive-types,Types,Computer Science,Primitive Types,我刚刚接受了电话采访,他们问了我这个问题: “一个整数的大小是多少,计算公式是什么?” 我不知道(好吧,我有点笨),但我只是好奇地想找到答案。我猜是在第二垒。。但我不知道 有人有什么想法吗?问题不清楚,您是在为不同的编程语言寻找整数位大小吗?或者你想知道int的最大值 顺便说一句,在java中,int是32位,max是2^31-1=2147483647,我想他问的是整数的范围。 在Java中,大小是4字节,所以应该在-2^31到2^31-1之间? 因为他问了这个等式。这个问题似乎是为了让你问他们

我刚刚接受了电话采访,他们问了我这个问题:

“一个整数的大小是多少,计算公式是什么?”

我不知道(好吧,我有点笨),但我只是好奇地想找到答案。我猜是在第二垒。。但我不知道


有人有什么想法吗?

问题不清楚,您是在为不同的编程语言寻找整数位大小吗?或者你想知道int的最大值


顺便说一句,在java中,int是32位,max是2^31-1=2147483647,我想他问的是整数的范围。 在Java中,大小是4字节,所以应该在-2^31到2^31-1之间?
因为他问了这个等式。

这个问题似乎是为了让你问他们:

  • 您希望
    整数
    类型编码的最大值是多少
假设他们说我们希望
MAX\u VALUE
是整数类型可以拥有的最大值

这就引出了等式。由于我们使用位对其进行编码,因此需要
log\u 2(MAX\u值)
位来编码小于等于
MAX\u值的任何正值。基数2的对数在那里,因为使用大小为
n
的位模式,您最多可以编码
2^n
不同的值。因此,如果您想知道编码
MAX_值所需的最大位模式时间,您需要计算
log
,因为:

2^(log_2(MAX_VALUE)) = MAX_VALUE
这没关系,除非你也想对数字0进行编码。如果您也想对0进行编码,那么在0和MAX_值之间有MAX_值+1个数字,因此您需要
log_2(MAX_值+1)
位对它们进行编码

另一个重要问题是我们要编码的
MIN\u值是什么

因此,您总共有
MAX\u值+1+abs(MIN\u值)
不同的值,因此您需要:

bits_needed = log_2(MAX_VALUE + 1 + abs(MIN_VALUE))

正如其他人所提到的,在java中,int
具有
最大值=2147483647
最小值=-2147483648
。当您进行计算时,会得到等于32的
log_2(4294967296)
。因此,32位是java中整数类型的大小。

这完全取决于它。这个问题提出得不好。他们是否询问特定语言中的特定数据类型?表示某个十进制数需要多少位?还有别的吗?@MattBall只是一个整数的大小,这就是他们所要求的。我被搞糊涂了!那么你应该要求澄清,因为对于一个如此含糊的问题,没有正确的答案。他们可能希望你要求澄清。他们可能含糊其辞地回答了这个问题,看看你是否能准确地找到他们想要的东西。此外,他们可能想了解您对各种系统中的标准整数大小的了解,以及存储特定范围整数的最小大小。(
log_2(最大值)
)用于未签名整数