Wie genau funktioniert bekommen Binärcode in Buchstaben Stack-Überlauf umgewandelt

Unter der Annahme, dass durch „Binärcode“ Sie bedeuten einfach nur alte Daten (Sequenzen von Bits oder Bytes), und das von „Buchstaben“ Sie Zeichen bedeuten, ist die Antwort in zwei Schritten. Aber zuerst einige Hintergrundinformationen.







Okay, sind jetzt hier die beiden Schritte:

Die Daten, wenn es Text ist, muss irgendwie durch eine Zeichencodierung begleitet werden. so etwas wie UTF-8, Latin-1, US-ASCII, usw. Jedes Zeichencodierungsschema spezifiziert im Detail, wie Bytefolgen werden als Codepunkte interpretiert (und umgekehrt, wie Codepoints als Byte-Sequenzen codiert werden).

Sobald die Byte-Sequenzen als Codepunkte interpretiert werden, haben Sie Ihre Charaktere, weil jedes Zeichen einen bestimmten Codepunkt hat.

Mit anderen Worten bedeutet nicht jede Byte-Sequenz etwas als Text.

Hier ist eine Art und Weise Binärzahlen in ASCII-Zeichen zu konvertieren, die oft einfach genug ist, in Ihrem Kopf zu tun.

1 - Wandeln Sie alle 4 Binärzahlen in eine Hexadezimalstelle.

Hier ist eine binäre Hex-Umrechnungstabelle:

Sobald Sie diese Grafik kennen, in eine Folge von hexadezimalen Ziffern eine beliebige Zeichenfolge von Binärziffern Umwandlung ist einfach.

2 - Teilen Sie die Zeichenfolge von hexadezimalen Ziffern in Paare.

Wenn eine Zahl in ASCII konvertieren, ist alle 2 Hex-Ziffern ein Zeichen. So bricht den Hex-String in Gruppen von zwei Ziffern.

Sie würden eine Hex-Zahl wie 7340298b392 dieses in 6 Paare, wie folgt aufgeteilt:

(Man beachte ich voran eine 0, da ich eine ungerade Anzahl von Hex-Ziffern hatte.)

Das ist 6 Paare von hexadezimalen Ziffern, also sein Gehen 6 Buchstaben sein. (Außer, dass ich sofort wissen, dass 98, b3 und 92 sind die Buchstaben nicht. Ich werde, warum in einer Minute erklären.)







Also, was Brief ist 68?

68 ist der vierte Buchstabe des Alphabets in Großbuchstaben, nicht wahr?
65 = A, B = 66, C = 67, 68 = D.

Alternativ, wenn Sie keine Angst vor einem wenig leicht hex Arithmetik sind, können Sie Schritt 3 überspringen und nur geradeaus von Hex-ASCII, durch die Erinnerung, zum Beispiel, dass

(Wenn dies zu tun, ist es hilfreich, sich daran zu erinnern, dass ‚m‘ (oder ‚M‘) ist die 13 Buchstaben des Alphabets. So Sie oder unten von 13 zählen kann einen Brief zu finden, die bis in die Mitte näher ist als an jedem Ende. )

Ich sah dieses auf einem Hemd einmal und konnte es in meinem Kopf lesen:

Ich habe es wie folgt aus:

Das T-Shirt sagte „DAD“, die ich dachte, irgendwie cool war, da es von einer schwangeren Frau gekauft wurde. Ihr Mann muss ein Geek wie ich sein.

Wie wusste ich sofort, dass 92, b3, und 98 waren keine Briefe?

Weil der ASCII-Code für einen Klein 'z' ist 96 + 26 = 122, die in hex 7a. 7a ist der größte Hexadezimalnummer für einen Brief. Alles, was größer ist als 7a ist kein Brief.

Also das ist, wie man es als Mensch tun kann.

Wie geht es Computerprogramme oder?

Für jeden Satz von 8 binären Ziffern, wandelt es in eine Reihe, und schauen Sie in einer ASCII-Tabelle nach oben.

(Das ist ein ziemlich offensichtlich und geradlinig Weg. Ein typischer Programmierer wahrscheinlich von 10 oder 15 andere Möglichkeiten, innerhalb von ein paar Minuten denken konnte. Die Angaben auf dem Computer Sprachumgebung ab.)

(Sehen Sie, was die chr Funktion hat.) Sie diesen Algorithmus verallgemeinern kann und eine unterschiedliche Anzahl von Bits pro Zeichen und verschiedenen Codierungen, bleibt der Punkt gleich.

beantwortet 26. Juli '11 um 7:20

Zoul
70.8k ● 30 ● ● 194 291

Es gibt 8 Bits in einem Byte. Ein Byte kann ein Symbol sein. Ein Bit ist entweder ein- oder ausgeschaltet.

beantwortet 26. Juli '11 um 7:18

Warum nicht einfach tun, nehmen diese 010010001001001 Spaltung in zwei Bits mit 8 Buchstaben jeder (01001000, 01001001). Ausgabe dann die Befugnisse

Die ersten 8 ignorieren die ersten drei sie bestimmen, ob es Kapital ist oder nicht, die gehen richtig tun Potenzen von 2 (2 ^ 1, 2 ^ 2 2 ^ 3 ^ 2 4 2 ^ 5) nach links. So fügen Sie dann alle diejenigen auf. es gibt nur einen, und es = 8 und te acht Buchstaben im Alphabet ist h so unsere erste Bit der Buchstabe h ist, versuchen Sie es auf der anderen Bit







In Verbindung stehende Artikel