Der "tatsächliche Schlüssel" sind die binären Zeichen. Was Sie normalerweise in eine Datei schreiben, ist jedoch eine hexadezimale Darstellung.
xxd gibt aufgrund der Option -r anstelle von hexadezimalen Darstellungen ASCII-Text aus. Mit tatsächlichen Zeichen ist die Manpage mit "binary" gemeint.
ASCII ist im Grunde nur eine Liste von Zeichen in einer bestimmten Reihenfolge. Zuerst ein NULL-Zeichen, dann ein Anfangszeichen für die Kopfzeile, dann ein Zeichen für das Ende der Kopfzeile usw. (Siehe: ASCII-Diagramm . Code-Seite 437 (siehe: Die Wikipedia-Seite zu CP437 zeigt diese als Leerzeichen, eine Smiley-Umrisslinie und ein ausgefülltes Zeichen) Smiley, usw. Das 65. Zeichen von beiden ist der Großbuchstabe A.
Wenn das 65. Zeichen der Großbuchstabe A ist, können wir die Zeichen anhand ihrer Position im Diagramm nachverfolgen. Der Großbuchstabe A ist also Position 65, die Position 41 ist hexadezimal (oft in C-Schreibweise als 0x41 geschrieben). In dem oben erwähnten ASCII-Diagramm sehen Sie den Wert "41".
Wie kann ASCII oder UTF-8 (oder allgemeiner Klartext) in einem zahlenbasierten System kodiert werden?
Zahlen können in andere Zahlen umgewandelt werden, z. B. in andere Basen. Beispiel: 0x4169 entspricht 0x4100 + 0x69. Die 41 entspricht dem Großbuchstaben H und die 69 dem Kleinbuchstaben i. Ich bin nicht sicher, warum Sie bezweifeln würden, dass numerische Konversation möglich ist. Wenn dies immer noch unklar ist, erklären Sie es bitte erneut (möglicherweise durch eine andere Frage).
I have noticed 2 different kinds of encoding schemes in my ventures. Are there more versions? Why?
Sicher. Warum? Weil es mehrere Softwareteile gibt, die von verschiedenen Personen entwickelt wurden. So wie es mehrere Zeichenstandards gibt (EBCDIC, ASCII, UTF-8, Unicode). Einige davon sind unbrauchbar (EBCDIC war sehr beliebt, bevor 8-Bit-Codeseiten mit ASCII immer populärer wurden), andere können von bestimmten Software-Tools leichter unterstützt werden. Computer sind jetzt so leistungsfähig, dass es nicht viele technische Einschränkungen gibt, die mehrere Standards erzwingen, aber unterschiedliche Programmierer machen aus verschiedenen Gründen unterschiedliche Dinge.
Konvertierungswerkzeuge existieren. Der Mangel an Standardisierung ist nämlich darauf zurückzuführen, dass keine stärkere / strengere / bessere Standardisierung erforderlich war. Wenn es einen überzeugenden Nutzen gibt, würden wahrscheinlich mehr Menschen eher versuchen, sich an größeren gemeinsamen Trends zu orientieren.
Warum geben BC-Ausgabezahlen und xxd ASCII-Text aus?
bc
ist ein Rechner. Ich würde eine numerische Ausgabe erwarten. xxd -r
gibt ASCII-Text aus, da dies dafür dokumentiert ist. Der Sinn dieser Software besteht darin, ASCII-Text in (hexadezimal) numerische Zeichenfolgen zu übersetzen, die einfacher einzugeben sind, und numerische Zeichenfolgen in "binäre" / ASCII-Zeichen umzuwandeln, die für bestimmte Software tatsächlich nützlicher sind. Jedes Programm erfüllt seinen eigenen, unterschiedlichen Zweck.
Ich hoffe, dass diese Sammlung von Antworten dazu beiträgt, genügend Fragen zu beantworten, um die Dinge klarer zu machen. Ich weiß, dass Sie darauf anspielten, aber ich möchte darauf hinweisen, dass diese Frage ein bisschen katastrophal ist, weil es keine sehr klare Frage ist. Überlegen Sie sich also, ob Sie in neuen Fragen weitere Fragen stellen sollten. Es wird im Allgemeinen bevorzugt, pro Stack-Seite eine tatsächliche Frage zu stellen.