Хорошо, я чувствую себя глупо, спрашивая об этом - но в статье Джеффа: «Правильный выбор экрана телефона для интервью», изначально изложенной в 5 основных вопросах экрана телефона :
Они не должны смотреть тупо на вас, когда вы спрашиваете с 2 ^ 16. Это особый номер. Они должны это знать.
Я был разработчиком \ инженером-программистом \ обезьяной кода \ кем бы то ни было некоторое время, и я не думаю, что когда-либо сталкивался с этим. Я имею в виду, что я, конечно, могу считать двоичные значения, выполнять с ними базовые операции и т. Д. И т. Д. Но я не вижу, что «особенного» в этом значении.
2^16.1
также является степенью 2, но ничего особенного. То же самое для2^0
.2**0
есть1
, на самом деле это очень особенное число;) Но да, нас обычно касаются только степени двух, где показатель степени является положительным целым числом.Ответы:
(2 16 - 1), или 65535, или
0xFFFF
или «64k» - максимальное значение 2 байта. Долгое время процессоры использовали 16-битную архитектуру, а операционные системы также основывались на 16-битных операциях и «словах» . Были 16-битные команды и 16-битные адреса памяти. Многие системы / компиляторы все еще используют 16 бит для целых чисел.Таким образом, (2 16 - 1) является особенным, поскольку это наибольшее число, которое может содержать 16-разрядное (беззнаковое) целое число, и самый большой адрес памяти, к которому может обращаться 16-разрядная архитектура.
источник
Из всего тела из статьи Стива Йегге,
Меня отбросило то, что вы указали в вопросе; Похоже, что кандидат должен быть в состоянии описать его значение, но в контексте он говорит, что кандидаты должны знать, из головы, что такое десятичное преобразование 2 16 .
Значение этого заключается в том, что, поскольку мы, люди, все еще используем десятичные числа для подсчета, особенно в наших головах (в большинстве случаев), нам необходимо знать грубые возможности общих байтовых блоков, которые мы используем для хранения, памяти или даже кодировки символов. Поскольку байт составляет 8 бит, наиболее распространенными являются 8, 16, 24, 32 и 64.
В настоящее время я бы сказал, что 32 - это наиболее часто встречающаяся мощность, с которой имеет дело разработчик. Я с подозрением отношусь к разработчикам, которые не знают, что 2 32 - это примерно 4 миллиарда (максимальное значение ~ 2 миллиарда, если подписано), поскольку это означает, что они никогда не удосужились узнать примерно, сколько записей может храниться в их базах данных, используйте 32-битные
int
s для первичных ключей, или когда старый код, использующий 32-битныеint
s для идентификаторов, дат и т. д., должен быть реорганизован в 64-битный. 12 16 - общая емкость Java
short
. (Общее число от -2 15 до 2 15 -1)Разработчик должен знать наизусть, что такое 8-битный. Среди многих распространенных применений - кодировка символов ASCII.
Я бы не ожидал, что программист вообще знает 2 14 или 2 18 , но я бы, вероятно, ожидал, что они знают 2 16, поскольку это очень часто встречающееся число и достаточно короткое число (65536), чтобы легко запомнить полное число.
1: Если вы просматриваете списки лидеров Call of Duty: MW2 или iPhone Game Center, вы часто будете видеть читеров наверху с высокими показателями 2 147 483 647, что составляет 2 31 -1, максимальное значение целого числа со знаком 2 32 .
источник
Единственная причина, по которой я могу рассматривать 2 16 как «особые», заключается в том, что это число больше целого, которое вы можете сохранить в одном регистре в 16-разрядной операционной системе.
Точно так же вы можете применить ту же логику для 32- и 32-разрядных операционных систем.
Мне нужно знать больше контекста для вопроса, прежде чем я смогу сказать, было ли это значительным знанием или нет.
источник