Frage:
Warum verwendet Mark Hexadezimal, um zu kommunizieren?
MovieMe
2015-11-13 17:17:29 UTC
view on stackexchange narkive permalink

Warum verwendet Mark im Film Martian Hexadezimal, um mit der NASA zu kommunizieren? Konnten Zahlen von 0 bis 9 nicht ausreichen, um die dem Alphabet entsprechende Zahl anzugeben?

Nun, sie verwenden die vollständige ASCII-Tabelle, nicht nur das Alphabet.
Genau genommen besteht ASCII nur aus 7 Bits und er hat 8, so dass er jedes Zeichen in Unicode (UTF-8-codiert) verwenden kann, nicht nur ASCII.:-)
@R Ich wäre beeindruckt, wenn ein Botaniker mit einem einfachen ASCII-Diagramm die richtige UTF-8-Codierung beliebiger Unicode-Zeichen über die grundlegenden 128 ASCII-Zeichen hinaus herausfinden könnte.
@R .. Das ursprüngliche ASCII hatte an den ersten 32 Positionen nicht druckbare Zeichen.Technisch gesehen benötigt er nur die Codes 2-7 für die erste Ziffer, da 8-F in striktem ASCII noch undefiniert sind.Da ASCII ausschließlich für Englisch entwickelt wurde und sie auf Englisch kommunizieren, benötigen sie keine ausgefallenen Zeichen.Akzentuierte Buchstaben und Buchstaben in anderen Skripten (Indisch, Chinesisch usw.) wurden viel später zu ASCII hinzugefügt (Unicode)."Café" ist genauso gut wie "Café" und es ist unwahrscheinlich, dass sie ein Wort verwenden, das mit einem Akzent geschrieben werden könnte, noch würden sie ein Symbol aus einer anderen Sprache verwenden.
5768792073686 Vhn 46 4220493 F.
@Mark: natürlich sollten Sie.(Vor einer Million Jahren, als ich Programme in Assembly direkt im Speicher schrieb, konnte ich ASCII viel besser lesen als heute; aber ich schaffe es immer noch)
Die eigentliche Frage ist, warum er Hexadezimal + ein Fragezeichen anstelle von nur Hexadezimal verwendet hat.
Nun eine Code-Golf-Frage: http://codegolf.stackexchange.com/questions/68621/create-an-ascii-to-hex-table-for-mark-watney
Nein, die _real_ Frage ist, warum er nicht Sixbit anstelle von ASCII verwendet hat?Antwort: Weil er kein Computerfreak war.Vorteile von Sixbit: Benötigt nur 9 Karten (8 + Marker) anstelle von 17. Er hätte entweder größere Sektoren pro Karte haben können, oder er hätte die Karten nur in einen Teil des Kreises drücken können, um die Übertragung zu beschleunigen (indem er die Schwenkzeit der Kamera verkürzt)).Bonusfrage: Wie hat die NASA aufeinanderfolgende identische Hex-Ziffern gesendet?
Ich fand meine Antwort ziemlich umfassend und bezog mich direkt auf den Quellenroman des Films.Gibt es noch etwas, das Sie sehen möchten, bevor Sie über eine Annahme nachdenken?
Acht antworten:
Valorum
2015-11-13 17:22:30 UTC
view on stackexchange narkive permalink

Mark wählt ein Hexadezimalsystem hauptsächlich, weil seine eigene Fähigkeit, herauszufinden, auf was der Kamerazeiger zeigt, nicht präzise genug ist. Wenn er alle 26 Buchstaben hat (plus eine Fragekarte plus ein Leerzeichen), besteht eine vernünftige Chance, dass er Schwierigkeiten hat, festzustellen, welchen Buchstaben sie bedeuten. Fügen Sie die Zahlen 0-9 hinzu und es wird noch schlimmer. Darüber hinaus ist es fast unmöglich, mit jeder Geschwindigkeit zu kommunizieren, wenn die Drehung nur um ein paar Grad ausgeschaltet ist.

Im Vergleich dazu Hex-Karten (plus eine zusätzliche Karte zur Anzeige) Eine Frage) erfordert nur 17 Karten, eine weitaus überschaubarere Zahl:

Wir müssen jede halbe Stunde schneller sprechen als Ja / Nein-Fragen. Die Kamera kann sich um 360 Grad drehen, und ich habe viele Antennenteile. Zeit, ein Alphabet zu machen. Aber ich kann nicht nur die Buchstaben A bis Z verwenden. Sechsundzwanzig Buchstaben plus meine Fragekarte wären siebenundzwanzig Karten um den Lander. Jeder würde nur 13 Bogengrade erhalten. Selbst wenn JPL die Kamera perfekt ausrichtet, besteht eine gute Chance, dass ich nicht weiß, welchen Buchstaben sie gemeint haben.

Ich muss also ASCII verwenden. So verwalten Computer Charaktere. Jedes Zeichen hat einen numerischen Code zwischen 0 und 255. Werte zwischen 0 und 255 können als 2 hexadezimale Ziffern ausgedrückt werden. Indem sie mir hexadezimale Ziffernpaare geben, können sie jedes beliebige Zeichen senden, einschließlich Zahlen, Interpunktion usw.

...

Also ich ' Ich mache Karten für 0 bis 9 und A bis F. Das bedeutet, dass 16 Karten um die Kamera gelegt werden, plus die Fragekarte. Siebzehn Karten bedeuten jeweils über 21 Grad. Viel einfacher zu handhaben. Der Marsmensch: Andy Weir sub> sup>

Offensichtlich scheint der Zeiger im Film effizienter zu drehen und anzuhalten (was seine Argumentation ungültig macht), aber das ist Hollywood für Sie.

danke dafür @richard, Ich meinte, die Zahlen 0 bis 9 mit einem zusätzlichen "Leerzeichen" würden insgesamt 11 Zeichen ergeben.360/11 wäre mehr in Grad als 360/16 hexadezimal.Beispiel: 2Space steht für B und 26Space steht für Z usw.
@Barry wählt er die Verwendung von ASCII-Codes, da er und die NASA mit ihnen bereits bestens vertraut wären, da Text auf diese Weise elektronisch übertragen wird.
Wie erhält eine Antwort, die die Frage völlig falsch versteht, 7 positive Stimmen?
@Barry Ich würde mir vorstellen, dass ein Gespräch zwischen der NASA und einem auf dem Mars gestrandeten Astronauten gelegentlich einige tatsächliche Zahlen enthalten möchte.Der Vorteil von hexadezimal ist, dass alles eine * eindeutige * zweistellige Zahl ist.Wenn Sie nur das Dezimalzahlensystem verwenden, um Buchstaben des Alphabets zuzuordnen, können Sie keine tatsächlichen Zahlen verwenden.bedeutet '26' die Zahl 26 oder den Buchstaben Z?
@MikeEdenfield, Ich würde so weit gehen, Mark als "bestens vertraut" mit dem ASCII-Code zu bezeichnen.Das Buch weist darauf hin, dass er Glück hatte, die ASCII-Tabelle in einer der Akten seiner ehemaligen Kollegen (vermutlich Johanssens) zu finden.Was mich übrigens immer wieder nervt, dass sie nicht gerne eine Kopie von Wikipedia auf all ihren Laptops mitbringen würden.Aber Disco?"Ja wirklich?"
@Barry In diesem Fall benötigt Z ein zusätzliches Zeichen zur Darstellung, da jedes Zeichen durch Leerzeichen getrennt ist.Die Verwendung eines Hexadezimalsystems, mit dem jeder vertraut und vertraut ist, bedeutet, dass JEDES Zeichen, Groß- und Kleinbuchstaben, 0-9 und Interpunktion sowie eine Reihe von Leerzeichen durch ein einzelnes Paar von Hex-Zeichen dargestellt werden können.Dies beinhaltet die Verwendung des "Null" -Zeichens (00), um das Ende einer Übertragung darzustellen.Also, Großbuchstabe Z = "5A" und Kleinbuchstabe Z = "7A".Ein Leerzeichen = "20" und ein Punkt = "2E" usw.
@moyli - Inwiefern habe ich das Gefühl, dass ich die Frage falsch verstanden habe?
Die Frage ist: "Warum hat Mark eine Notation mit 16 Symbolen anstelle von 10 Symbolen verwendet?"Sie beantworten eine Frage: "Warum hat Mark eine Notation mit 16 Symbolen anstelle von 38 Symbolen verwendet?"
Richard antwortete mit Informationen aus dem Universum, wobei der Charakter die Optionen 16 gegen 10 nicht abwog.er wählte zwischen 16 und 38, und dies war das Argument für die 16. Der Geist der Frage wird angesprochen, wenn nicht der spezifische Vergleich, der nicht einmal eine in Betracht gezogene Option im Buch war.
Und nein, die Frage ist: "Warum hat Mark Hexadezimal verwendet, um zu kommunizieren?"was hier speziell beantwortet wird.Die Unterfrage, ob stattdessen Ziffern verwendet werden könnten oder nicht, wird nicht direkt angesprochen, aber wir sind nicht hier, um zu diskutieren, welche besser gewesen wäre - dies war der Grund, warum mark hex gewählt hat.
@phantom42 Die Hälfte der Fragen auf der Website würde wahrscheinlich ganz andere Dinge stellen, wenn wir nur auf der Grundlage des Titels gehen würden.
@Moyli - Die Frage, warum Mark (im Universum) keine Sprache verwendet hat, die Sie als "effizienter" betrachten, liegt außerhalb des Bereichs der Website.Es wäre "meinungsbasiert".
Aber genau das ist die Frage * ist *.Nehmen Sie nicht mein Wort dafür, [das hat das OP gesagt] (http://scifi.stackexchange.com/questions/107675/why-does-mark-use-hexadecimal-to-communicate#comment253606_107677).Bearbeiten Sie die Frage entweder so, dass sie mit der tatsächlichen Antwort übereinstimmt, oder stimmen Sie ab, um sie als meinungsbasiert zu schließen.
@Richard Ich denke, es würde Ihnen schwer fallen, Fragen der Form "Warum hat Charakter X nicht das getan, was ich für eine viel bessere Idee gehalten hätte?"sind außerhalb des Bereichs für die Website, angesichts der großen Anzahl, die offen bleiben durften, einschließlich mindestens einiger, die hoch bewertete Antworten * von Ihnen * haben.
@Richard, Sehr gute Antwort.Eine Sache, die mich nervt, ist, dass er die Fragezeichen-Karte nicht brauchte.Das Ascii-Alphabet enthält ein Fragezeichen ... Oder ist es eher aus Gründen der Benutzeroberfläche, das tatsächliche Ende des Satzes zu kennzeichnen, anstatt nur einen zufälligen Stopp ...
@Roman Nichts, was dich nervt.Die Fragekarte ist kein Fragezeichen, aber die eigentliche Antwort / Frage * Mark * wird zurückgesendet.Es scheint auch offensichtlich, warum Sie Base 10 nicht zum Übertragen von Daten verwenden würden, wenn Sie bereits festgestellt haben, dass Base 16 perfekt analysierbar ist.Wenn Sie Basis 10 verwenden, benötigen Sie plötzlich 3 Umdrehungen, um ein einzelnes Zeichen anstelle von 2 zu übertragen. Jetzt können Sie Basis 12 auswählen (ASCII hat nur 7 Bit), aber warum sollten Sie statt des netten und einfachen Standards ein völlig unintuitives wählen?Kein Ingenieur würde zweimal darüber nachdenken, welche Basis er unter diesen Umständen auswählen sollte.
Anthony Grist
2015-11-13 20:08:42 UTC
view on stackexchange narkive permalink

Hier sind die Hauptgründe, warum ich mir vorstellen kann, Hexadezimal gegenüber einer (ziemlich willkürlichen) Dezimalzahl der Alphabetzuordnung vorzuziehen:

  1. Hexadezimal und die ASCII-Zeichencodes sollten etwas sein, was NASA-Wissenschaftler tun sind vertraut mit, daher ist bei 16 Karten - 0-9 und AF - die Absicht sofort offensichtlich: "Ich möchte mit Hexadezimal kommunizieren."

  2. Es gibt keine Mehrdeutigkeit. Das Zuordnen der 10 Ziffern des Dezimalzahlensystems zu einem Buchstaben des Alphabets würde funktionieren, vorausgesetzt, Sie möchten nur die Buchstaben des Alphabets verwenden. In einem Gespräch zwischen der NASA und einem auf dem Mars gestrandeten Astronauten wäre es wahrscheinlich nützlich, tatsächliche Zahlen verwenden zu können. Hexadezimal bedeutet, dass jeder Buchstabe des Alphabets, jede Zahl sowie viele Satzzeichen und andere Symbole durch eine zweistellige Zahl eindeutig dargestellt werden können.

  3. Hexadezimal wäre tatsächlich Schneller zu kommunizieren. Wenn Sie zwischen jedem Buchstaben ein Leerzeichen verwenden müssen, sehen Sie zwei Kamerabewegungen für die ersten 9 (oder 10, wenn Sie A bis 0 zuordnen) Buchstaben des Alphabets und drei Bewegungen für den Rest. Hexadezimal sind zwei Kamerabewegungen pro Zeichen.

  4. ol>
Obwohl es keine Textquelle gibt, bin ich mir sicher, dass der dritte Grund hier auftauchen würde, wenn man den Autor fragen würde.Die Kommunikation in Hex wäre einfach schneller.Wenn Binärprogramme gesendet werden mussten, konnten sie einfach in hexadezimaler Schreibweise gesendet werden.
Vor langer Zeit habe ich eine ganze Reihe von Codierungen in Hex gemacht.Es ist nicht so schwierig, wie es aussieht, wenn Sie viel getan haben.Außerdem ist es sehr effizient, wenn Informationen mit einer begrenzten Bandbreite gesendet werden.
Wenn Sie die 32 nicht angezeigten Zeichen entfernen, können alle 7-Bit-ASCII-Zeichen mit 2 Ziffern von 0 bis 9 codiert werden.Dies würde jedoch eine zusätzliche Kommunikation mit der NASA erfordern, um einen neuen Standard zu etablieren, was Mark nicht hatte.
Yakk
2015-11-13 21:31:47 UTC
view on stackexchange narkive permalink

Er ist kein Informatiker. Es ist nicht trivial, eine neue Methode zu erfinden, um den gesamten gewünschten Text zu übertragen.

Er hätte eine Tabelle mit 100 Einträgen (mit den Werten 00 bis 99) erstellen und jedem ein Zeichen zuweisen können. Aber dann müsste er den Tisch an das NASA-Hauptquartier zurücksenden, und würde sowieso die gleiche Anzahl von Nachrichten benötigen, um einen Charakter zu übertragen! (2 Nachrichten pro Zeichen).

Das einfache Senden von 01-26 zum Codieren von Buchstaben ist nicht sehr gut: Das Codieren von Zahlen würde das Ausschreiben erfordern! Es wird schlimmer, wenn sie ? oder ! oder kommunizieren müssen. oder , oder # usw. (unwahrscheinlich, aber möglich)

ASCII wird beiden Seiten bekannt sein. Es ist nicht erforderlich, eine Tabelle zu übertragen. Es enthält einen grundlegenden Zeichensatz, mit dem Sie die meisten technischen Informationen (einschließlich Programmierung) zwischen einer Seite und der anderen übertragen können. Auf der Erde können sie eine Nachricht in einem Texteditor eingeben und in ASCII umcodieren, indem sie nur die Rohbytes der Nachricht betrachten, und müssen dafür keine Software schreiben, die das macht Problem einfach und zuverlässig an ihrem Ende.

Kurz gesagt, es gab bereits eine bekannte Möglichkeit, mit 2 Knabbereien pro Zeichen zu kommunizieren. Die Neuerfindung eines neuen Protokolls ist fehleranfällig und schwieriger. Sobald 1/17 eines Bogens groß genug war, um leicht zu unterscheiden, ist es nicht sehr vorteilhaft, zumindest anfänglich weniger genau zu arbeiten.

Wie bereits erwähnt, treten bei 26 oder 36 oder höher Präzisionsprobleme auf (26 Buchstaben + 10 Zahlen + Leerzeichen + 3 Symbole = 40 oder 9 Bogengrade pro Zeichen). Das Senden von 1 Buchstaben pro Kamerabewegung war also nicht praktikabel. Das Ausführen von 2 Zeichen pro 3 Kamerabewegungen wäre wahrscheinlich machbar, stößt jedoch auf das Problem "Neugestaltung" und Probleme mit der Protokollkommunikation.

Senden Sie währenddessen "ASCII verwenden" und Zeichen mit der Aufschrift 0-9 A-F und a? hat das Problem gelöst.

Peter Davidson
2015-11-13 20:30:44 UTC
view on stackexchange narkive permalink

Ich vermute, dass ein Teil des Grundes darin besteht, dass es dadurch technischer und beeindruckender aussieht.

Theoretisch sollte hexadezimal eine viel höhere Bandbreite zulassen - für jeweils zwei Positionen der Kamera kann 1 Vollbyte mit 255 möglichen Zeichen übertragen werden. Im Gegensatz dazu würde ein Dezimalansatz nur 99 Zeichen zulassen. Es gibt jedoch nichts (woran ich mich erinnern kann), das zeigt, dass die zusätzliche Bandbreite notwendig war oder sogar verwendet wurde.

Das einfachere Dezimalsystem könnte leicht die 26 Großbuchstaben, 26 Kleinbuchstaben, Zahlen und die zugehörige Interpunktion enthalten Markierungen.

Die Verwendung des Hex-Ansatzes basiert auf der ASCII-Tabelle, die normalerweise nur 7 Bit umfasst. Nur 4 Werte (von den vollen 16) der ersten Ziffer werden für druckbare Buchstaben verwendet, wenn Kleinbuchstaben ausgeschlossen sind.

Wenn die zusätzliche Bandbreite nützlich gewesen wäre, hätte man eine Tabelle mit den meisten definiert -verwendete Wörter. Mark hätte leicht eine Liste gebräuchlicher Wörter schreiben und sie der Kamera anzeigen können. Sie hätten die Kommunikationsgeschwindigkeit erheblich erhöhen können, da sie ein Vokabular von 12x16 = 192 Wörtern hätten verwenden können. Xkcd ( https://xkcd.com/1133/) hat uns gezeigt, dass eine sehr vollständige Kommunikation mit nur 1000 Wörtern (10 Bit) möglich ist. 192 schnelle Wörter mit vollständiger Schreibweise von Wörtern, die nicht in der Liste enthalten sind, würden die Kommunikation viel weniger mühsam machen. Es erscheint Mark auch nicht unangemessen, dies herauszufinden und der Erde mitzuteilen. Schon ein paar Wörter würden helfen.

Wenn er mehr Papier und etwas Geduld hätte, wäre es noch besser, dreistellige Hex-Codes zu verwenden - dies würde ihm 4000 Wörter plus das Alphabet geben.

Noch besser wäre es, eine einfache Huffman-Codierung zu verwenden - dh kürzere Codes für häufige Symbole zu verwenden. Er könnte die gebräuchlichsten Wörter / Buchstaben in die erste Ziffer einfügen, zusammen mit speziellen Codes für zweistellige oder dreistellige Wörter. Dies würde eine unterschiedliche Nachrichtenlänge ergeben, wäre jedoch immer noch sehr gut von Hand zu dekodieren.

Der beste Ansatz wäre jedoch, mit dem Computer einen optimal komprimierten Datensatz zu erarbeiten und diesen dann einfach mit dem gesamten 8-Bit-Bereich zu übertragen. Dies würde eine etwas knifflige Programmierung erfordern, die wahrscheinlich über ihn hinausgehen würde - es wäre nicht effizient, die Standardkomprimierungsbibliotheken zu verwenden, da ein fester Wörterbuchansatz besser wäre. Auf diese Weise könnte er sich der theoretischen Grenze von 1 Bit pro Zeichen oder 4 Zeichen für jede Positionierung der Kamera nähern.

Aber es wäre wahrscheinlich nicht so dramatisch für die Leser / Zuschauer.

Es ist eigentlich nicht notwendig, den "manuellen" Kommunikationsmodus zu verbessern, da dies genauso lange dauert, bis das Rover-Betriebssystem für die Verwendung des Pathfinders repariert ist.Die erhöhte Bandbreite von HEX mit vollem ASCII ist ebenfalls höchst zweifelhaft, da die meisten Zeichen in ASCII nicht verwendet werden.
Sie wussten von Anfang an nicht, dass sie den Rover zur Kommunikation bringen könnten.Der Trick beim Senden von Daten über die Protokollierungsschnittstelle schien plausibel, aber praktisch ... Ich denke immer noch, wenn ich darauf warten würde, dass die Nachrichten bei 30s / char oder so eingehen, würde ich gerne ziemlich schnell zu einer effizienteren Methode übergehen.Zumal ich viel Zeit hätte, darüber nachzudenken.
Peter, richtig.Es wird darauf hingewiesen, dass es ihm irgendwie langweilig war, die Kamerapositionen aufzuschreiben.
Wenn das Gedächtnis dient, haben sie einige der fortgeschritteneren Ansätze wie die Huffman-Codierung verwendet ... als die Leute vor Ort ihm halfen, ein effektiveres Kommunikationsmittel zu finden, das weniger von menschlicher Interaktion abhängig war ... tun Sie es einfach nichtsehen Sie es, weil die Computer es für ihn taten
Eigentlich 256 Zeichen.Plus ein redundantes Fragezeichen.
Angenommen, er hätte kein handliches Buch "Die häufigsten 1000 Wörter" (abhängig von der verwendeten Quelle), müssten er und die NASA viel Zeit damit verschwenden, alle Wörter zu übertragen, nur um zu einem anderen Protokoll und einer anderen Geschwindigkeit zu wechselnDinge viel später.Es war wichtiger, ihn am Leben zu halten.
Wie gesagt, das einfache Schema würde nur 192 Wörter benötigen, die er der Kamera leicht hätte zeigen können.Es ist auch nicht unangemessen, dass er ziemlich umfangreiches Referenzmaterial gehabt hätte, das leicht eine solche Liste enthalten könnte.Er hätte auch auf ein bekanntes Dokument verweisen und die Worthäufigkeit entweder manuell oder mit einem einfachen Skript bestimmen können.Übrigens habe ich ein schönes Papier aus den 80ern gefunden, das ein praktisches 4-Bit-Codierungsschema zeigt - http://comjnl.oxfordjournals.org/content/24/4/324.full.pdf
Die sehr weit verbreitete zlib-Bibliothek mit dem deflate * -Format * (aber nicht dem gzip * -Format * oder * Programm *) erlaubt (mehrere) ** voreingestellte Wörterbücher **: http://stackoverflow.com/questions/21712250/is-Es ist möglich, ein gültiges gzip-mit-statischem-Wörterbuch zu erstellen. http://stackoverflow.com/questions/15295036/is-there-a-way-to-store-gzips-dictionary-from-a-file
Colin Q Bang
2015-11-14 12:40:36 UTC
view on stackexchange narkive permalink

(Ich mag Teile einiger anderer Antworten und Kommentare, aber sie haben alle ihre Probleme, also geht es weiter ...)

"tl; dr"? Nur das Fett für eine übersichtliche Version.

Beachten Sie b>, dass es bei einigen Antworten oder Kommentaren darum geht, "warum nicht jede Zeigerposition direkt übereinstimmt zu einem Symbol - überhaupt kein Code. " Das neuartige Zitat (unten und wie in Richards Antwort) erklärt dies, aber die Frage war einfach "warum nicht Ziffern von 0 bis 9 verwenden", d. H. Dezimal statt hexadezimal i>. Also nehme ich zunächst ASCII als gegeben. B> In einer Endnote werde ich ein wenig über effizientere Schemata für die "Angabe der Zahl, die dem Alphabet entspricht" sagen, um den Fragesteller zu zitieren, da er es wohl meinte ein Code, aber möglicherweise nicht ASCII. (Und vielleicht ist im Film nicht so klar wie im Roman, dass dieser Code verwendet wird. Ich weiß nicht, ich war ein wenig beschwipst, als ich ihn mir ansah. I> )


Antworte zuerst auf den zweiten Teil: Einfach "Ja", das Senden von Codes in den Ziffern 0 bis 9 ist völlig ausreichend. In dem Roman lautet das Zitat (danke an Richard), das erklärt, warum eine begrenzte Anzahl von Symbolen verwendet werden soll:

"Sechsundzwanzig Buchstaben plus meine Fragekarte wären siebenundzwanzig Karten um die Jeder würde nur 13 Grad Bogen bekommen. Selbst wenn JPL die Kamera perfekt ausrichtet, besteht eine gute Chance, dass ich nicht weiß, welchen Buchstaben sie bedeuteten. "

Dies macht es offensichtlich : 0 bis 9 bedeutet weniger Karten, also auch in Ordnung. B>

Für diejenigen, die nicht mathematisch veranlagt sind, scheint es impliziert zu sein, dass hexadezimal etwas Besonderes ist ( wobei die Ziffern A - F 10 - 15 darstellen und die Position einer Ziffer die Potenz (Exponent) von 16 anstelle von 10) in Bezug auf ASCII angibt, wie in diesem anderen Zitat:

"Also muss ich ASCII * verwenden. So verwalten Computer Zeichen. Jedes Zeichen hat einen numerischen Code zwischen 0 und 255 **. Werte zwischen 0 und 255 können als 2 hexadezimale Ziffern ausgedrückt werden. "

Aber nein : ASCII ist nur eine Tabelle, die" abbildet ". eine Zahl zu einem Symbol, so dass diese Zahl genauso leicht die bekanntere Dezimalstelle mit den Ziffern 0 bis 9 sein kann.

Der erste Teil - "Warum hexadezimal?" - wird zumindest im Film nicht beantwortet. Die wahrscheinlich beste Antwort ist eine außerhalb des Universums: Es scheint wie nerdiges wissenschaftliches Zeug, und dieser Film liebt seine nerdigen Wissenschaftler. b> Hey, es hat bei Ron Howard und Tom Hanks funktioniert.

Im Prinzip i> ist es effizienter - weniger Bewegungen des Zeigers - 16 "Ziffern" (Zeiger) zu haben Positionen) als 10. Je mehr desto besser, bis es zu viele unserer Lieblings-Marsmenschen werden, um sie zu unterscheiden. Andere Stapelaustauscher haben in unterschiedlichem Detail und in korrekter Genauigkeit andere Codierungsschemata * beschrieben, die dies, insbesondere für unseren Astro, viel besser nutzen könnten -Botanistische Heldenumstände. Aber @Ghanima und @Peter Davidson sind die aktuellsten Beachten Sie, dass bei Verwendung von ASCII wie in The Martian die mögliche Effizienz von 16 gegenüber 10 Stellen pro Zeigerbewegung größtenteils verschwendet wird. Um genauer zu sagen, wie wenig Unterschied es im tatsächlichen Fall macht: In ASCII sind die Zahlen, die jeweils "Leerzeichen", 0 - 9, A - Z (aber nicht az) und Symbole außer {|} ~ darstellen, weniger als 99, wenn es Ihnen also nichts ausmacht, durch Schreiben in ALLCAPS ein SHOUTY DICK für Ihren MARTIAN BUDDY zu sein, und Sie dem "Umarmen" widerstehen können {{Matt Damon}} er ist bezaubernd!) Sie brauchen nicht mehr Zeigerbewegungen (2) pro Zeichen mit Dezimalzahl als mit Hexadezimalzahl . b>


Endnoten:

* b> Hey Mark, nein, du musst kein ASCII verwenden. Anscheinend können Sie der NASA jede Methode mitteilen, die Sie erfinden und die sie verwenden sollen. Zum Beispiel (immer noch hexadezimal, wenn numerisch gedacht) einer, bei dem die 15 häufigsten Buchstaben jeweils nur durch eine "Ziffer" (eine Bewegung des Zeigers) dargestellt werden, wobei 0 bis F 1 überspringen und die anderen 11 durch die Werte 10 bis 1A. Der Wert '1' wird übersprungen, sodass beim Senden klar ist, dass es sich um die erste Ziffer eines zweistelligen Codewerts handelt.

Wie bei ASCII handelt es sich um ein einfaches Symbolcodierungsschema, jedoch um die große Mehrheit Die Anzahl der gesendeten Briefe dauert halb so lange. Das Senden von Zahlen hat weniger Priorität (es wurde weder in den Romanzitaten noch im Film erwähnt, glaube ich). Selbst in ASCII ist der Codepunkt für jede Ziffer eine zweistellige Zahl. Wenn Sie also viele Ziffern senden möchten, anstatt sie wie in ASCII und / oder einem der zuvor veröffentlichten Kommentare zu codieren, möchten Sie sie als "einfache Zahlen" senden. Wenn ein paar zusätzliche Zeigerpositionen nicht zu viele sind, können Sie auf einfache Weise eine hinzufügen, die bedeutet, dass "was als nächstes kommt, ist eine Zahl" und eine, die bedeutet, "was als nächstes kommt, ist keine Zahl". Dies ohne diese zusätzlichen Positionen zu signalisieren (dh nur Codewerte zu verwenden, bei denen es sich um Zahlendaten handeln könnte), bleibt dem Leser als Übung.

Ausgefallenere Dinge wie die Huffman-Codierung werden von anderen erwähnt, aber hey, Mark ist nur der größte Botaniker auf dem Mars - das kann er den Mathematik- oder Computer-Nerds bei der NASA überlassen.

** [Schiebt die Nerd-Brille wieder auf den Nasenrücken]: Tatsächlich verwendet ASCII nur 0 - 127, nicht 0 - 255.

Deleteman
2015-11-13 20:20:49 UTC
view on stackexchange narkive permalink

Angenommen, Sie meinen, warum haben sie nicht einfach ASCII-Code in Dezimalstellen verwendet, anstatt Hex zu verwenden?

Technisch könnten sie haben, ich meine 32 ist das Leerzeichen, 97 ist der Buchstabe 'a', 117 ist 'u' und so weiter.

Technisch gesehen also, Mark Ich hätte einfach "ASCII mit Dezimalstellen" auf sein Board schreiben können, um diese Nachricht als Bild zu senden, und dann nur 11 andere Antennen verwendet, um alle 10 Ziffern von 0 bis 9 und das Fragezeichen darzustellen.

Das hätte ihm einen größeren Bereich für jeden Buchstaben gegeben, ABER die meisten Buchstaben in der ASCII-Tabelle sind dreistellig (auf Basis 10), sodass die Kommunikation etwas länger dauern würde.

Das ist der einzige Grund, warum ich denken kann, dass dies für mich sinnvoll ist. Die Zeit, die sie für die Übermittlung der einzelnen Briefe benötigt hätten, hätte die gesamte Kommunikationszeit verlängert.

Aber jetzt bekommst du "22".Ist es v, der 22. Buchstabe?Oder ist es "122" und Sie haben nur "1" nicht erkannt?Oder ist es die Zahl 22?Mit ASCII haben Sie Fehler, die leichter zu erkennen sind, und eine größere Auswahl an Dingen, die Sie ohne Zweifel sagen können - und das alles mit 2 statt 3 Zügen, sodass die Wahrscheinlichkeit, bei einigen Charakteren Fehler zu machen, um 33% geringer ist.Sie können Text mit zufälligen Zeichen lesen, aber 33% weniger sind immer einfacher.
Du meinst mit HEX richtig?weil ich nicht sage, dass er ASCII nicht hätte verwenden sollen, im Gegenteil, alles was ich sage ist, dass er alle ASCII-Zeichen mit den Dezimalzahlen sehr gut hätte darstellen können, er hätte nur mehr Züge benötigt.Und ich glaube, ich verstehe Ihren anderen Punkt, er würde nicht wissen, ob jeder Buchstabe ein zweistelliges Zeichen oder ein dreistelliges Zeichen ist. Wenn das wahrscheinlich die richtige Antwort ist.
Wenn Watney ungefähr 110 Jahre alt wäre, hätte er möglicherweise Oktal verwendet.
Hagen von Eitzen
2015-11-15 03:44:29 UTC
view on stackexchange narkive permalink

Die meisten Referenzdiagramme für ASCII organisieren die Zeichen in einer Tabelle mit 16 Spalten und 16 Zeilen (genau genommen nur 8 Zeilen; oder vielleicht dieses historische Beispiel in 16 Zeilen und 8 Spalten), was es besonders einfach macht, von / zu hexadezimalen Ziffernpaaren zu dekodieren / zu kodieren.

Chris Dobson
2020-04-26 08:18:48 UTC
view on stackexchange narkive permalink

Wie auch immer Sie es in Scheiben schneiden, 17 Karten geben ihm 17 Symbole, seien es Buchstaben oder Zahlen. Der einzige Vorteil von Hexadezimal ist, dass die Symbole für 10 bis 16 in Hexadezimal (A - F) wohl schmaler sind. Wenn der Kartenabstand zählt, gibt es überhaupt keinen Vorteil. Es klingt gut, aber es ist Unsinn.

Hallo, willkommen bei SF & F.Es ist wirklich nicht klar, was du sagst.Schlagen Sie vor, dass die Karten von 1 bis 17 nummeriert werden sollten?Die Frage ist, warum 16 (17) Karten und nicht 10 (11)?Hast du alle vorherigen Antworten gelesen?Es ist kein "Unsinn".
Ich sage, dass 16 Karten 16 Buchstaben ergeben, unabhängig davon, wie Sie die Buchstaben darstellen. Die ersten 16 Buchstaben im Alphabet sind A B C D E F G H I J K L M N O P. In Basis 10 kann dies codiert werden 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 In Basis 16 (hexadezimal) wäre es 0 1 2 3 4 5 6 7 8 9 A B C D E F. Der ASCII-Code lautet (in Basis 10). 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 Sie können jeden dieser Symbolcodes verwenden, die Sie mögen, aber Sie erhalten immer noch nur 16 Buchstaben. Ich habe viele der vorherigen Antworten gelesen, aber nicht alle.Wenn ich etwas Wichtiges verpasst habe, lassen Sie es mich bitte wissen.
DavidW, übrigens, danke für deine Antwort.Ich sollte hinzufügen, dass ich den Film sehr mag und ich denke, dass er im Allgemeinen die Wissenschaft sehr gut darstellt.Aber ich habe nie eine vernünftige Erklärung für dieses spezielle Nebenspiel gefunden (die hexadezimalen Alphabetkarten).


Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...