Was bedeutet das Wort "totes Rindfleisch"? Ich habe es aus einer Interviewfrage gelesen. Es hat etwas mit IPv6 zu tun. Ich dachte, es könnte eine zufällige Hex-Zahl sein, die für Beispiele verwendet wird, wie "Der schnelle braune Fuchs springt über den faulen Hund".
Ist mein Verständnis richtig? Oder hat es eine bedeutendere Bedeutung?
Antworten:
http://en.wikipedia.org/wiki/Hexspeak
http://www.urbandictionary.com/define.php?term=dead%3Abeef
"Dead Beef" ist ein sehr beliebter Satz in der Programmierung, da er nur aus Buchstaben af besteht, die in hexadezimaler Notation verwendet werden. Doppelpunkte am Anfang und in der Mitte des Satzes machen diesen Satz zu einer (theoretisch) gültigen IPv6-Adresse.
quelle
Es ist ein erfundener Ausdruck, der nur die Buchstaben AF verwendet und häufig verwendet wird, wenn eine erkennbare Hexadezimalzahl erforderlich ist. Einige Systeme verwenden es für verschiedene Zwecke, z. B. zum Anzeigen des freigegebenen Speichers, auf den nicht erneut verwiesen werden sollte. In einem Debugger kann dieser Wert ein Zeichen dafür sein, dass Sie einen Fehler gemacht haben. Aus Wikipedia :
Die Zahl 0xDEADBEEF entspricht der weniger erkennbaren Dezimalzahl 3735928559 (ohne Vorzeichen) oder -559038737 (mit Vorzeichen).
quelle
Der Wert von 0xDEADBEEF bietet drei praktische Vorteile, hauptsächlich für ältere Systeme. Alte Assembler / C-Hacks wie ich würden es verwenden, um nicht zugewiesenen Speicher zu füllen, um Speicherprobleme zu lösen. Es ist auch ein Wortspiel des Slang-Begriffs "totes Fleisch". Der Programmierer ist totes Fleisch, wenn DEADBEEF in seinen Zeigern landet. Ich gratuliere dem Mann, der zuerst daran gedacht hat, den Wert DEADBEEF zu verwenden. Es ist in vielerlei Hinsicht klug.
Aus praktischen Gründen fällt dies erstens in einem Hex-Speicherauszug besser auf, da tatsächlich Wörter geschrieben werden, im Gegensatz zu zufälligen Hex-Werten.
Zweitens, wenn der Wert in einem Zeiger angezeigt wird, ist es wahrscheinlicher, dass ein Speicherfehler außerhalb des Bereichs auftritt. Eine Adresse von DEADBEEF lag außerhalb des Adressbereichs von Systemen (wir sprechen jetzt von Systemen des letzten Jahrhunderts), unabhängig vom Endian des Systems.
Drittens ist es wahrscheinlicher, dass auf Systemen, die für den Zugriff auf 16/32/64-Bit-Daten gerade Grenzzeigerwerte benötigen, ein Fehler auftritt. Es ist wahrscheinlicher, dass der Wert fehlerhaft ist, da beide 16-Bit-Werte (DEAD, BEEF) ungerade sind.
quelle
Da IPv6-Adressen in Hex-Notation geschrieben sind, können Sie in Adressen "Hexspeak" (Zahlen 0-9 und Buchstaben af) verwenden.
Es gibt eine Reihe von Wörtern, die Sie als gültige Adressen verwenden können, um sie besser zu vereinheitlichen.
Wenn Sie
ping6 www.facebook.com -n
etwas wie "2a03: 2880: f01c: 601: face: b00c : 0: 1" erhalten.Hier sind einige Beispiele:
quelle
Es wird auch zum Debuggen verwendet.
Hier ist eine praktische Liste einiger dieser Werte:
http://en.wikipedia.org/wiki/Magic_number_%28programming%29#Magic_debug_values
quelle
Normalerweise wird es verwendet, um Dummy-Werte anzuzeigen. Ich denke, dass es hauptsächlich vor der Idee von NULL-Zeigern verwendet wurde.
quelle
Es ist eine magische Zahl, die an verschiedenen Stellen verwendet wird, weil sie auch auf Englisch lesbar ist, was sie auszeichnet. Es gibt eine unvollständige Liste auf Wikipedia .
quelle
Es wurde als Muster verwendet, um es als eine Reihe von Hex-Bytes (0xde, 0xad, 0xbe, 0xef) im Speicher zu speichern. Sie konnten feststellen, ob der Speicher aufgrund eines Hardwarefehlers, Pufferüberlaufs usw. beschädigt war.
quelle
0xDEADBEEF wird normalerweise in die Speicher-Arrays gefüllt, so dass jede Ausnahme, wenn sie falsch angezeigt wird oder wenn der Puffer über läuft, usw. ausgeführt wird.
quelle