好的,我问这个问题很愚蠢-但在杰夫(Jeff)的文章中:正确设置采访电话屏幕,最初是在5个基本电话屏幕问题中指出的:
当您要求2 ^ 16是时,他们不应该茫然地盯着您。这是一个特殊的数字。他们应该知道。
我从事开发人员,软件工程师,代码猴子等工作已经有一段时间了,我认为我从未遇到过。我的意思是,我当然可以指望二进制值对其执行基本操作等,但是我看不到该值的“特殊之处”。
2^16.1
也是2的幂,但没什么特别的。相同2^0
。
好的,我问这个问题很愚蠢-但在杰夫(Jeff)的文章中:正确设置采访电话屏幕,最初是在5个基本电话屏幕问题中指出的:
当您要求2 ^ 16是时,他们不应该茫然地盯着您。这是一个特殊的数字。他们应该知道。
我从事开发人员,软件工程师,代码猴子等工作已经有一段时间了,我认为我从未遇到过。我的意思是,我当然可以指望二进制值对其执行基本操作等,但是我看不到该值的“特殊之处”。
2^16.1
也是2的幂,但没什么特别的。相同2^0
。
Answers:
(2 16 - 1)或65535或0xFFFF
或“64K”是2个字节的最大值。长期以来,CPU使用16位体系结构,而OS同样基于16位操作和“字”。有16位命令和16位内存地址。许多系统/编译器仍将16位用于整数。
因此,(2 16-1)很特殊,因为它是16位(无符号)整数可以容纳的最大数字,也是16位体系结构可以访问的最大内存地址。
从史蒂夫·耶格(Steve Yegge)的文章的全文来看,
候选人应该知道什么是位和字节。它们应该能够以二进制进行计数;例如,他们应该能够以十进制告诉您2 ^ 5或2 ^ 10是什么。当您要求2 ^ 16是时,他们不应该茫然地盯着您。这是一个特殊的数字。他们应该知道。
我不喜欢你在问题中引用的那句话;听起来候选人应该能够描述其重要性,但在上下文中,他说候选人应该从头开始知道2 16的十进制转换是什么。
这样做的意义在于,由于人类仍然使用十进制进行计数,尤其是在大多数情况下,在我们的头脑中,我们需要知道用于存储,存储甚至字符编码的通用字节块的粗略容量。由于字节是8位,因此最常见的是8、16、24、32和64。
目前,我想说2 32是开发人员最常处理的功能。我对那些不知道2 32大约为40亿(如果签名的话,最大值约为20亿)的开发人员感到怀疑,因为这意味着他们从不费心去找出数据库中可以存储多少记录,使用32位int
S代表主键,或当使用32位旧代码int
S代表的ID,日期等将需要被重构为64位。1个
2 16是Java的总容量short
。(总数在-2 15和2 15 -1之间)
开发人员应该完全知道8位是什么。在许多常见用法中,有ASCII字符编码。
我不希望程序员完全知道2 14或2 18,但我可能希望他们知道2 16,因为它是一个非常常见的数字,而且足够短(65536)以方便记住完整数字。
1:如果您浏览《使命召唤:MW2》或iPhone Game Center的排行榜,您经常会在顶部看到作弊器,其最高得分值为2,147,483,647,即2 31 -1,即有符号2 32整数的最大值。