OK, ich fühle mich dumm, das zu fragen - aber in Jeffs Artikel: Den Bildschirm des Interviewtelefons richtig machen und ursprünglich in den 5 wichtigsten Fragen zum Bildschirm des Telefons angegeben :
Sie sollten dich nicht verständnislos anstarren, wenn du mit 2 ^ 16 fragst. Es ist eine spezielle Nummer. Sie sollten es wissen.
Ich bin seit einiger Zeit Entwickler / Softwareentwickler / Code-Affe / was auch immer, und ich glaube nicht, dass ich jemals darauf gestoßen bin. Ich meine, ich kann mit Sicherheit Binärwerte zählen, die grundlegende Operationen ausführen, usw. usw. Aber ich sehe nicht, was an diesem Wert "besonders" ist.
2^16.1
ist auch eine Potenz von 2, aber nichts Besonderes. Gleiches gilt für2^0
.2**0
ist1
, was in der Tat eine sehr spezielle Zahl ist;) Aber ja, wir beschäftigen uns im Allgemeinen nur mit Zweierpotenzen, bei denen der Exponent eine positive ganze Zahl ist.Antworten:
(2 16 - 1) oder 65535 oder
0xFFFF
oder "64k" ist der Maximalwert von 2 Bytes. Lange Zeit verwendeten CPUs eine 16-Bit-Architektur und Betriebssysteme basierten ebenfalls auf 16-Bit-Operationen und "Worten" . Es gab 16-Bit-Befehle und 16-Bit-Speicheradressen. Viele Systeme / Compiler verwenden immer noch 16 Bit für Ganzzahlen.(2 16 - 1) ist also etwas Besonderes, da es die größte Zahl ist, die eine 16-Bit-Ganzzahl (ohne Vorzeichen) enthalten kann, und die größte Speicheradresse, auf die eine 16-Bit-Architektur zugreifen kann.
quelle
Aus dem ganzen Körper von Steve Yegges Artikel,
Ich wurde von dem Teil abgeworfen, den Sie in der Frage zitiert haben. Es klang, als ob ein Kandidat in der Lage sein sollte, seine Bedeutung zu beschreiben, aber im Zusammenhang sagt er, dass Kandidaten auf Anhieb wissen sollten, was die Dezimalumrechnung von 2 16 ist.
Die Bedeutung davon ist, dass wir Menschen immer noch Dezimalzahlen zum Zählen verwenden, insbesondere in unseren Köpfen (in den meisten Fällen), und daher die groben Kapazitäten der allgemeinen Byteblöcke kennen müssen, die wir zum Speichern, Speichern oder sogar zur Zeichencodierung verwenden. Da ein Byte aus 8 Bits besteht, sind 8, 16, 24, 32 und 64 die häufigsten.
Zum gegenwärtigen Zeitpunkt würde ich sagen, dass 2 32 die am häufigsten vorkommende Kapazität ist, mit der ein Entwickler umgeht. Ich bin misstrauisch gegenüber Entwicklern, die nicht wissen, dass 2 32 ungefähr 4 Milliarden sind (maximal 2 Milliarden, wenn signiert), da sie nie die Mühe gemacht haben, ungefähr herauszufinden, wie viele Datensätze in ihren Datenbanken gespeichert werden können Verwenden Sie 32-Bit-
int
s für Primärschlüssel, oder wenn alter Code, der 32-Bit-int
s für IDs, Datumsangaben usw. verwendet, auf 64-Bit umgestaltet werden muss. 12 16 ist die Gesamtkapazität von Java
short
. (Gesamtzahl zwischen -2 15 und 2 15 -1)Ein Entwickler sollte auswendig wissen, was 8-Bit ist. Unter den vielen gebräuchlichen Verwendungen ist die ASCII-Zeichencodierung.
Ich würde nicht erwarten, dass ein Programmierer 2 14 oder 2 18 überhaupt kennt , aber ich würde wahrscheinlich erwarten, dass er 2 16 kennt, da es sich um eine sehr häufig vorkommende Zahl handelt, die kurz genug ist (65536), um sich leicht an die vollständige Zahl zu erinnern.
1: Wenn Sie in den Bestenlisten von Call of Duty: MW2 oder iPhone Game Center stöbern, werden Sie häufig Betrüger mit einem Höchstwert von 2.147.483.647 (2 31 -1, der Höchstwert einer vorzeichenbehafteten 2 32- Ganzzahl) sehen.
quelle
Der einzige Grund, warum ich 2 16 als "speziell" betrachte, ist, dass es mehr als die höchste Ganzzahl ist, die Sie in einem einzelnen Register eines 16-Bit-Betriebssystems speichern können.
In ähnlicher Weise könnten Sie dieselbe Logik auf 2 32- und 32-Bit-Betriebssysteme anwenden .
Ich müsste mehr Kontext für die Frage wissen, bevor ich sagen kann, ob es sich um ein signifikantes Stück Wissen handelt oder nicht.
quelle