Domanda:
Perché Mark usa l'esadecimale per comunicare?
MovieMe
2015-11-13 17:17:29 UTC
view on stackexchange narkive permalink

Nel film Martian, perché Mark usa l'esadecimale per comunicare con la NASA? I numeri da 0 a 9 non erano sufficienti per indicare il numero corrispondente all'alfabeto?

Bene, stanno usando la tabella ASCII completa, non solo l'alfabeto, quindi.
A rigor di termini, ASCII è solo 7 bit e lui ne ha 8, quindi potrebbe usare qualsiasi carattere in Unicode (codificato UTF-8) non solo ASCII.:-)
@R Sarei impressionato se un botanico con un semplice grafico ASCII potesse capire la corretta codifica UTF-8 di caratteri Unicode arbitrari oltre i 128 caratteri ASCII di base.
@R .. L'ASCII originale aveva caratteri non stampabili nelle prime 32 posizioni.Quindi tecnicamente, ha solo bisogno dei codici 2-7 per la prima cifra poiché 8-F sono ancora indefiniti in ASCII rigoroso.Poiché ASCII è stato progettato esclusivamente per l'inglese e comunicano in inglese, non hanno bisogno di caratteri fantasiosi.Lettere accentate e lettere in altri script (Indiano, Cinese, ecc.) Furono aggiunte ad ASCII (diventando Unicode) molto più tardi."cafe" è buono quanto "café" ed è improbabile che usino una parola che potrebbe essere scritta con un accento, né userebbero un simbolo di un'altra lingua.
5768792073686 Vhn 46 4220493 F.
@Mark: ovviamente dovresti.(Un milione di anni fa, quando scrivevo programmi in assembly direttamente in memoria, potevo leggere ascii molto meglio di oggi; ma ci riesco ancora)
La vera domanda è: perché ha usato esadecimale + un punto interrogativo invece di solo esadecimale?
Ora, una domanda sul golf in codice: http://codegolf.stackexchange.com/questions/68621/create-an-ascii-to-hex-table-for-mark-watney
No, la domanda _real_ è perché non ha usato sixbit invece di ascii?Risposta: perché non era un fanatico del computer.Vantaggi del sixbit: servono solo 9 carte (8 + marker) invece di 17. Avrebbe potuto avere settori più grandi per carta, oppure avrebbe potuto spremere le carte solo in una parte del cerchio per accelerare la trasmissione (riducendo il tempo di panoramica della telecamera).Domanda bonus: come ha fatto la NASA a inviare cifre esadecimali identiche consecutive?
Ho sentito che la mia risposta era piuttosto completa, attingendo direttamente dal romanzo originale del film.C'è qualcos'altro che vorresti vedere prima di considerare un'accettazione?
Otto risposte:
#1
+48
Valorum
2015-11-13 17:22:30 UTC
view on stackexchange narkive permalink

Mark sceglie di utilizzare un sistema esadecimale principalmente perché la sua propria capacità di capire cosa sta puntando il puntatore della fotocamera non è abbastanza precisa. Se ha tutte le 26 lettere (più una scheda domanda, più uno spazio), c'è una ragionevole possibilità che lotterà per determinare quale lettera significano. Aggiungi i numeri 0-9 e peggiora ancora. Inoltre, se la virata è disattivata anche di un paio di gradi, sarà quasi impossibile comunicare a qualsiasi velocità.

In confronto, le carte esadecimali (più una carta in più per indicare una domanda) richiede solo 17 carte, un numero molto più gestibile:

Dovremo parlare più velocemente delle domande sì / no ogni mezz'ora. La fotocamera può ruotare di 360 gradi e ho molte parti dell'antenna. È ora di fare un alfabeto. Ma non posso usare solo le lettere dalla A alla Z. Ventisei lettere più la mia scheda con le domande sarebbero ventisette carte attorno al lander. Ognuno otterrebbe solo 13 gradi di arco. Anche se JPL punta perfettamente la fotocamera, ci sono buone probabilità che non sappia quale lettera intendessero.

Quindi dovrò usare ASCII. È così che i computer gestiscono i personaggi. Ogni carattere ha un codice numerico compreso tra 0 e 255. I valori compresi tra 0 e 255 possono essere espressi come 2 cifre esadecimali. Fornendomi coppie di cifre esadecimali, possono inviare qualsiasi carattere desiderino, inclusi numeri, punteggiatura, ecc.

...

Quindi io " Farò carte da 0 a 9 e da A a F. Ciò fa 16 carte da posizionare intorno alla telecamera, più la carta domanda. Diciassette carte significano oltre 21 gradi ciascuna. Molto più facile da gestire. The Martian: Andy Weir

Ovviamente nel film, il puntatore sembra piuttosto più efficiente nel girare e fermarsi (il che invalida il suo ragionamento) ma per te è Hollywood.

grazie per questo @richard, volevo dire che i numeri da 0 a 9 con un carattere "spazio" aggiuntivo ammonterebbero a 11 caratteri in totale.360/11 sarebbe più in gradi che 360/16 di esadecimale.Ad esempio: 2Space sta per B e 26Space sta per Z, ecc
@Barry sta scegliendo di utilizzare i codici ASCII perché lui e la NASA avrebbero già familiarità con loro, poiché è così che il testo viene trasmesso elettronicamente.
In che modo una risposta che fraintende completamente la domanda ottiene 7 voti positivi?
@Barry Immagino che una conversazione tra la NASA e un astronauta arenato su Marte possa occasionalmente contenere alcuni numeri reali.Il vantaggio dell'esadecimale è che tutto è un numero di due cifre * univoco *.Se si utilizza solo il sistema di numeri decimali per mappare le lettere dell'alfabeto, non è possibile utilizzare numeri effettivi;"26" significa il numero 26 o la lettera Z?
@MikeEdenfield, Mi spingerei al punto di chiamare Mark "intimamente familiare" con il codice ASCII.Il libro sottolinea che è stato fortunato a trovare la tabella ASCII in uno dei file dei suoi ex colleghi (presumibilmente di Johanssen).Il che continua a infastidirmi dal fatto che non si preoccuperebbero di portare una copia di wikipedia su tutti i laptop.Ma la discoteca?Veramente?
@Barry In questo caso, Z prende un carattere in più per rappresentare perché ogni carattere è delimitato da spazi.Usare un sistema esadecimale che tutti conoscono e con cui si sentono a proprio agio significa che OGNI carattere, maiuscolo e minuscolo, 0-9 e punteggiatura, nonché una sfilza di caratteri di spazi bianchi, possono essere rappresentati da una singola coppia di caratteri esadecimali.Ciò include l'utilizzo del carattere "null" (00) per rappresentare la fine di una trasmissione.Quindi, Z maiuscolo = "5A" e Z minuscolo = "7A".Uno spazio = "20" e un punto = "2E" e così via.
@moyli - In che modo ritieni di aver frainteso la domanda?
La domanda è "Perché Marco ha utilizzato una notazione con 16 simboli invece di 10 simboli?"Stai rispondendo a una domanda che sarebbe "Perché Marco ha usato una notazione con 16 simboli invece di 38 simboli?"
Richard ha risposto usando le informazioni nell'universo, dove il personaggio non ha valutato le opzioni di 16 contro 10;scelse tra il 16 e il 38, e questo era l'argomento per il 16. Lo spirito della domanda è affrontato se non il confronto specifico, che non era nemmeno un'opzione considerata nel libro.
E no, la domanda è "perché mark ha usato l'esadecimale per comunicare?"che trova una risposta specifica qui.la questione secondaria se è possibile o meno utilizzare i numeri non è affrontata direttamente, ma non siamo qui per discutere quale sarebbe stato migliore - questo è stato il motivo per cui mark ha scelto hex.
@phantom42 La metà delle domande sul sito probabilmente farebbero cose completamente diverse se andassimo solo sulla base del titolo.
@Moyli - La domanda sul perché Mark (in-universe) non abbia utilizzato un linguaggio che consideri più "efficiente" esula dall'ambito del sito.Sarebbe "basato sull'opinione".
Ma questo è ciò che la domanda * è *.Non credermi sulla parola, [questo è ciò che ha detto l'OP] (http://scifi.stackexchange.com/questions/107675/why-does-mark-use-hexadecimal-to-communicate#comment253606_107677).Modifica la domanda in modo che corrisponda a ciò a cui stai effettivamente rispondendo o vota per chiuderla come basata sull'opinione.
@Richard Penso che avresti difficoltà a discutere domande del tipo "Perché il personaggio X non ha fatto questa cosa che penso sarebbe stata un'idea molto migliore?"non rientrano nell'ambito del sito, considerando il gran numero di persone a cui è stato consentito di rimanere aperti, inclusi almeno alcuni che hanno un punteggio elevato * da parte tua *.
@Richard, Ottima risposta.Una cosa che mi infastidisce è che non aveva bisogno della carta del punto interrogativo.L'alfabeto Ascii contiene un punto interrogativo ... O è più per motivi dell'interfaccia utente, per indicare la fine effettiva della frase invece di un semplice arresto casuale ...
@Roman Niente da disturbarti.La scheda della domanda non è un punto interrogativo, ma la risposta / domanda effettiva * Mark * sta restituendo.Inoltre sembra ovvio il motivo per cui non useresti la base 10 per trasmettere dati se hai già stabilito che la base 16 è perfettamente analizzabile.Se usi la base 10 hai bisogno improvvisamente di 3 rotazioni per trasmettere un singolo carattere invece di 2. Ora potresti scegliere la base 12 (ASCII ha solo 7 bit), ma perché sceglierne uno completamente poco intuitivo invece del simpatico e semplice standard?Nessun ingegnere penserebbe due volte su quale base scegliere in queste circostanze.
#2
+25
Anthony Grist
2015-11-13 20:08:42 UTC
view on stackexchange narkive permalink

Ecco i motivi principali che mi vengono in mente per preferire la mappatura esadecimale (piuttosto arbitraria) da decimale a quella alfabetica:

  1. I codici esadecimali e ASCII dovrebbero essere qualcosa di scienziati della NASA hanno familiarità, quindi quando si presentano 16 carte - 0-9 e AF - l'intento è immediatamente evidente: "Voglio comunicare usando Esadecimale".

  2. Non c'è ambiguità. Mappare le 10 cifre del sistema numerico decimale su una lettera dell'alfabeto funzionerebbe, a condizione che tu voglia usare solo le lettere dell'alfabeto. Essere in grado di utilizzare numeri reali sarebbe probabilmente utile in una conversazione tra la NASA e un astronauta arenato su Marte. Esadecimale significa che ogni lettera dell'alfabeto, ogni numero e molti segni di punteggiatura e altri simboli possono essere tutti rappresentati in modo univoco da un numero a due cifre.

  3. Esadecimale sarebbe effettivamente più veloce per comunicare. Se devi usare uno 'spazio' tra ogni lettera, allora stai guardando due movimenti della telecamera per le prime 9 (o 10 se mappi A a 0) lettere dell'alfabeto e tre movimenti per il resto. L'esadecimale corrisponde a due movimenti della telecamera per carattere.

Sebbene non ci sia una fonte testuale, se qualcuno chiedesse all'autore sono sicuro che la ragione n. 3 qui verrebbe fuori.Comunicare in esagono sarebbe solo più veloce.Inoltre, se fosse necessario inviare programmi binari, potrebbero essere inviati semplicemente in esadecimale.
Molto tempo fa, ho scritto un sacco di codice in esadecimale.Non è così difficile come sembra se ne hai fatto molto.Inoltre è molto efficiente quando si inviano informazioni in una larghezza di banda limitata.
Se rimuovi i 32 caratteri non visualizzati, tutti i caratteri ASCII a 7 bit possono essere codificati con 2 cifre da 0 a 9.Tuttavia, ciò richiederebbe ulteriori comunicazioni con la NASA per stabilire un nuovo standard, qualcosa che Mark non aveva.
#3
+11
Yakk
2015-11-13 21:31:47 UTC
view on stackexchange narkive permalink

Non è uno scienziato informatico. Inventare un nuovo modo per trasmettere tutto il testo che desideri non sarà banale.

Avrebbe potuto creare una tabella di 100 voci (con valori da 00 a 99) e assegnare a ciascuna un carattere. Ma poi avrebbe dovuto comunicare il tavolo al quartier generale della NASA, e ci sarebbe voluto lo stesso numero di messaggi per trasmettere comunque un personaggio! (2 messaggi per carattere).

Il semplice invio di 01-26 per codificare le lettere non è molto buono: la codifica dei numeri richiederebbe l'ortografia! Peggio ancora se devono comunicare ? o ! o . o , o # codice> ecc. (improbabile, ma possibile)

ASCII sarà ben noto a entrambe le parti. Non è necessario trasmettere una tabella. Contiene un set di caratteri di base che ti consentirà di passare la maggior parte delle informazioni tecniche (compresa la programmazione) da una parte all'altra. Sulla Terra, saranno in grado di digitare un messaggio in un editor di testo e transcodificarlo in ASCII semplicemente guardando i byte grezzi del messaggio e non dovranno scrivere software personalizzato per farlo, il che rende il problema facile e affidabile da parte loro.

In breve, esisteva già un modo ben noto di comunicare utilizzando 2 bocconcini per carattere. Reinventare un nuovo protocollo sarà soggetto a errori e più difficile. Una volta che 1/17 di arco era abbastanza grande da poter distinguere facilmente, non c'è molto vantaggio nell'usare una minore precisione, almeno inizialmente.

Come notato, andare a 26 o 36 o più incorre in problemi di precisione (26 lettere + 10 numeri + spazio + 3 simboli = 40 o 9 gradi di arco per carattere). Quindi trasmettere 1 lettera per movimento della telecamera non era pratico. Fare 2 caratteri per 3 mosse della telecamera sarebbe probabilmente fattibile, ma incorre nel problema di "riprogettazione" e problemi di comunicazione del protocollo.

Nel frattempo, l'invio di "Usa ASCII" e i segnali che dicono 0-9 A-F e a? ha risolto il problema.

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

Sospetto che in parte il motivo sia che lo fa sembrare più tecnico e impressionante.

In teoria, l'esadecimale dovrebbe consentire una larghezza di banda molto più elevata - per ogni due posizioni della telecamera, può essere trasmesso 1 byte intero, con 255 possibili caratteri. Al contrario, un approccio decimale consentirebbe solo 99 caratteri. Tuttavia non c'è nulla (che io possa ricordare) che dimostri che la larghezza di banda aggiuntiva fosse necessaria o addirittura utilizzata.

Il sistema decimale più semplice potrebbe facilmente includere le 26 lettere maiuscole, 26 lettere minuscole, i numeri e la punteggiatura associata segni.

L'utilizzo dell'approccio esadecimale si basa sulla tabella ASCII, che di solito è di soli 7 bit; solo 4 valori (su 16 completi) della prima cifra vengono utilizzati per le lettere stampabili se si escludono le lettere minuscole.

Dove la larghezza di banda aggiuntiva sarebbe stata utile sarebbe stato definire una tabella di più parole usate. Mark avrebbe potuto facilmente scrivere un elenco di parole comuni e mostrarle alla telecamera. Avrebbero potuto aumentare notevolmente la velocità di comunicazione, poiché avrebbero avuto un vocabolario di 12x16 = 192 parole da usare. Xkcd ( https://xkcd.com/1133/) ci ha mostrato che la piena comunicazione è possibile con solo 1000 parole (10 bit). Avere 192 parole veloci, con l'ortografia completa di tutte le parole non presenti nell'elenco, renderebbe la comunicazione molto meno noiosa. Inoltre, non sembra irragionevole per Mark capirlo e comunicarlo alla Terra. Anche solo poche parole aiuterebbero.

Se avesse più carta e un po 'di pazienza, un approccio ancora migliore sarebbe usare codici esadecimali a 3 cifre: questo gli darebbe 4000 parole, più l'alfabeto.

Sarebbe ancora meglio adottare una semplice codifica di Huffman, ovvero utilizzare codici più brevi per i simboli frequenti. Poteva inserire le parole / lettere più comuni nella prima cifra, insieme a codici speciali per parole a 2 o 3 cifre. Ciò darebbe una lunghezza variabile al messaggio, ma sarebbe comunque molto fattibile da decodificare a mano.

Ma l'approccio migliore di tutti sarebbe quello di utilizzare il computer per elaborare un insieme di dati compressi in modo ottimale, quindi trasmetterlo utilizzando l'intera gamma di 8 bit. Ciò richiederebbe una programmazione un po 'complicata che probabilmente andrebbe oltre le sue capacità - non sarebbe efficiente usare le librerie di compressione standard poiché un approccio con dizionario fisso sarebbe migliore. In questo modo potrebbe avvicinarsi al limite teorico di 1 bit per carattere o 4 caratteri per ogni posizionamento della telecamera.

Ma probabilmente non sarebbe così drammatico per i lettori / spettatori.

In realtà non è necessario migliorare la modalità di comunicazione "manuale" poiché lo fanno per il tempo necessario a correggere il sistema operativo rover in modo che utilizzi pathfinder.Anche la maggiore larghezza di banda di HEX con ASCII completo è altamente dubbia poiché la maggior parte dei caratteri ASCII non verrà utilizzata.
All'inizio non sapevano che sarebbero stati in grado di far comunicare il rover.Il trucco con l'invio di dati tramite l'interfaccia di registrazione sembrava plausibile, ma conveniente ... Continuo a pensare che se stavo aspettando che i messaggi arrivassero a 30s / char o giù di lì, sarei ansioso di passare a un metodo più efficiente abbastanza rapidamente.Soprattutto perché avrei tutto il tempo per pensarci.
Peter, giusto.Si fa notare che si è stufato di scrivere le posizioni della telecamera.
Se la memoria serve, hanno usato alcuni degli approcci più avanzati come la codifica di Huffman ... una volta che i ragazzi a terra lo hanno aiutato a collegarsi in un mezzo di comunicazione più efficace che era meno dipendente dall'interazione umana ...vederlo perché i computer lo facevano per lui
In realtà 256 caratteri.Più un punto interrogativo ridondante.
Supponendo che non avesse un libro a portata di mano "Le 1000 parole più comuni" (che dipende dalla fonte che usi), lui e la NASA avrebbero dovuto sprecare molto tempo a trasmettere tutte le parole solo per passare a un protocollo e una velocità diversicose più su _much_ dopo.Tenerlo in vita era più importante.
Come ho detto, il semplice schema avrebbe richiesto solo 192 parole, che avrebbe potuto facilmente mostrare alla telecamera.Inoltre, non è irragionevole che avrebbe avuto materiale di riferimento abbastanza ampio che potrebbe facilmente includere un elenco del genere.Avrebbe anche potuto fare riferimento a un documento noto e determinare la frequenza della parola, manualmente o con qualche semplice script.Per inciso, ho trovato un bel documento degli anni '80 che mostra un comodo schema di codifica a 4 bit: http://comjnl.oxfordjournals.org/content/24/4/324.full.pdf
La libreria zlib molto utilizzata con il formato deflate * * (ma non il formato gzip * o * programma *) consente (diversi) ** dizionari preimpostati **: http://stackoverflow.com/questions/21712250/is-it-possible-to-create-valid-gzip-with-static-dictionary http://stackoverflow.com/questions/15295036/is-there-a-way-to-store-gzips-dictionary-from-a-file
#5
+2
Colin Q Bang
2015-11-14 12:40:36 UTC
view on stackexchange narkive permalink

(Mi piacciono parti di molte altre risposte e commenti, ma hanno tutti i loro problemi, quindi ecco qui ...)

"tl; dr"? Solo il grassetto per una versione concisa.

Nota che alcune risposte o commenti riguardano "perché non far corrispondere direttamente ciascuna posizione del puntatore a un simbolo, non a un codice. " La citazione del romanzo (sotto e come nella risposta di Richard) lo spiega, ma la domanda era semplicemente "perché non usare numeri da 0 a 9", cioè decimale invece di esadecimale . Quindi inizierò prendendo ASCII come un dato. In una nota di chiusura dirò un po 'di schemi più efficienti per "indicare il numero corrispondente all'alfabeto", per citare il richiedente, poiché immagino che intendesse un codice ma possibilmente non ASCII. (E forse non è così chiaro nel film, come nel romanzo, che questo è il codice utilizzato. Non lo so, ero un po 'brillo quando l'ho visto. )


Rispondi prima alla seconda parte: semplicemente "sì", l'invio di codici da 0 a 9 è assolutamente sufficiente. Nel romanzo, la citazione (grazie a Richard) che spiega perché usare un numero limitato di simboli è:

"Ventisei lettere più la mia scheda della domanda sarebbero ventisette carte intorno al lander. Ciascuno otterrebbe solo 13 gradi di arco. Anche se JPL punta perfettamente la fotocamera, ci sono buone probabilità che non sappia quale lettera si riferisse. "

Questo lo rende ovvio : Da 0 a 9 significa meno carte, quindi va bene anche.

Per coloro che non sono matematicamente inclini, potrebbe sembrare implicito che ci sia qualcosa di speciale nell'esadecimale ( in cui le cifre A - F rappresentano 10-15 e la posizione di una cifra indica la potenza (esponente) di 16 anziché 10) in relazione ad ASCII, come in quest'altra citazione:

"Quindi dovrò usare ASCII *. È così che i computer gestiscono i caratteri. Ogni carattere ha un codice numerico compreso tra 0 e 255 **. Valori tra 0 e 255 può essere espresso come 2 cifre esadecimali. "

Ma no : ASCII è solo una tabella che" mappa " un numero a un simbolo, in modo che il numero possa essere altrettanto facilmente il decimale più familiare con cifre da 0 a 9.

La prima parte: "perché esadecimale?" - non ha una risposta, almeno nel film. Probabilmente la risposta migliore è fuori dall'universo: sembra roba da scienza nerd, e questo film adora i suoi scienziati nerd. b> Ehi, ha funzionato per Ron Howard e Tom Hanks.

In linea di principio è più efficiente - meno mosse del puntatore - avere 16 "cifre" (puntatore posizioni) rispetto a 10. Anzi, più sono e meglio è finché non diventano troppe le nostre marziane preferite da distinguere. Altri scambiatori di stack hanno descritto, con dettagli e correttezza variabili, altri schemi di codifica * che potrebbero trarne vantaggio molto meglio, specialmente per il nostro astro - Le circostanze dell'eroe botanico. Ma @Ghanima e @Peter Davidson sono i più importanti notando che, usando ASCII come in The Martian, la possibile efficienza di avere 16 contro 10 cifre per mossa del puntatore è per lo più sprecata. Per essere più espliciti su quanta poca differenza fa nel caso reale: In ASCII, i numeri che rappresentano ciascuno di "spazio", 0 - 9, A - Z (ma non az) e simboli tranne {|} ~, sono meno di 99, quindi se non ti dispiace ESSERE UN CAZZO GRIDO AL TUO AMICO MARZIANO INVIANDO TESTI IN ALLCAPS e puoi resistere agli "abbracci" {{Matt Damon}} (Puoi? No, davvero - PUOI ?? 'Cuz è adorabile!) non servono più mosse del puntatore (2) per carattere con decimale che con esadecimale .


Note di chiusura:

* Ehi Mark, no, non devi usare ascii. Apparentemente puoi comunicare alla NASA qualsiasi metodo tu inventi che desideri utilizzare. Ad esempio, (usando sempre l'esadecimale se si pensa numericamente) una in cui le 15 lettere più comuni sono rappresentate ciascuna da una sola "cifra" (una mossa del puntatore), da 0 a F saltando 1 e le altre 11 dai valori da 10 a 1A. Il valore "1" viene saltato in modo che quando viene inviato è chiaro che è la prima cifra di un valore di codice a due cifre.

Come ASCII è un semplice schema di codifica dei simboli, ma la grande maggioranza delle lettere inviate richiederà la metà del tempo. L'invio di numeri è meno prioritario (non è stato menzionato nelle citazioni del romanzo, o nel film credo). Anche in ASCII, il punto di codice per ogni cifra è un numero a due cifre. Quindi, se vuoi inviare molte cifre, invece di codificarle come in ASCII e / o uno dei commenti postati in precedenza, dovresti inviarle come "semplici numeri". Se un paio di posizioni extra del puntatore non sono troppe, un modo semplice è aggiungerne uno che significhi "ciò che viene dopo è un numero" e uno che significa "ciò che viene dopo non è un numero". Segnalare ciò senza queste posizioni extra (cioè utilizzando solo valori di codice che potrebbero essere dati numerici) è lasciato come esercizio per il lettore.

Altre cose fantasiose come la codifica di Huffman sono menzionate da altri ma, ehi, Mark è semplicemente il più grande botanico su Marte: può lasciarlo ai nerd di matematica o computer della NASA.

** [Spinge gli occhiali da nerd di nuovo sul ponte del naso]: in realtà ASCII usa solo 0 - 127, non 0 - 255.

#6
+1
Deleteman
2015-11-13 20:20:49 UTC
view on stackexchange narkive permalink

Bene, supponendo che tu intenda perché non hanno semplicemente usato il codice ASCII in decimali, invece di usare esadecimale?

Tecnicamente, avrebbero potuto, voglio dire 32 è il carattere spazio, 97 è la lettera "a", 117 è "u" e così via.

Quindi tecnicamente, Mark avrebbe potuto semplicemente scrivere "ASCII usando i decimali" sulla sua lavagna per inviare quel messaggio come immagine e quindi usare solo altre 11 antenne per rappresentare tutte le 10 cifre da 0 a 9 e il punto interrogativo.

Questo gli avrebbe dato una gamma più ampia per ogni lettera MA la maggior parte delle lettere dell'alfabeto sulla tabella ASCII sono rappresentate con 3 cifre (in base 10), quindi le comunicazioni richiederebbero un po 'più di tempo.

Questo è l'unico motivo per cui posso pensare che abbia senso per me, il tempo che avrebbero impiegato per trasmettere ogni lettera avrebbe aumentato il tempo di comunicazione complessivo.

Ma ora ottieni "22".È v, la ventiduesima lettera?O è "122" e non sei riuscito a individuare "1"?O è il 22 numerico?Con ASCII, hai errori più facili da individuare e una gamma più ampia di cose che puoi dire senza dubbi - e tutto questo con 2 mosse invece di 3, quindi il 33% in meno di possibilità di commettere errori in alcuni caratteri.Puoi leggere il testo con alcuni caratteri randomizzati, ma il 33% in meno è sempre più facile.
Intendi con HEX, vero?perché non sto dicendo che non avrebbe dovuto usare ASCII, tutto il contrario in realtà, tutto quello che sto dicendo è che avrebbe potuto rappresentare molto bene tutti i caratteri ASCII con i numeri decimali, avrebbe solo avuto bisogno di più mosse.E penso di aver capito il tuo altro punto, non saprebbe se ogni lettera fosse un carattere di 2 cifre o 3 .. se questa è probabilmente la risposta giusta.
Se Watney avesse circa 110 anni, potrebbe aver usato l'ottale.
#7
+1
Hagen von Eitzen
2015-11-15 03:44:29 UTC
view on stackexchange narkive permalink

La maggior parte dei grafici di riferimento per ASCII organizza i caratteri in una tabella di 16 colonne e 16 righe (beh, in senso stretto solo 8 righe; o forse come questo esempio storico in 16 righe e 8 colonne) che rende particolarmente facile decodificare / codificare da / a coppie di cifre esadecimali.

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

Comunque lo tagli, 17 carte gli danno 17 simboli, siano essi lettere o numeri. L'unico vantaggio dell'esadecimale è che i simboli da 10 a 16 sono probabilmente più stretti in esadecimale (A - F). Se la spaziatura delle carte è ciò che conta, non c'è alcun vantaggio. Suona bene, ma non ha senso.

Ciao, benvenuto in SF&F.Non è davvero chiaro cosa stai dicendo.Stai suggerendo di numerare le carte da 1 a 17?La domanda è: perché 16 (17) carte e non 10 (11)?Hai letto tutte le risposte precedenti?Non è "una sciocchezza".
Sto dicendo che 16 carte ti danno 16 lettere, indipendentemente da come le rappresenti. Le prime 16 lettere dell'alfabeto sono A B C D E F G H I J K L M N O P In base 10 questo può essere codificato 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 In base 16 (esadecimale), sarebbe 0 1 2 3 4 5 6 7 8 9 A B C D E F Il codice ascii è (in base 10) 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 Puoi utilizzare uno qualsiasi di questi codici simbolo che ti piace, ma ottieni comunque solo 16 lettere. Ho letto molte delle risposte precedenti, ma non tutte.Se ho perso qualcosa di importante, fatemelo sapere.
DavidW, btw, grazie per la tua risposta.Aggiungo che il film mi piace molto e penso che in generale rappresenti molto bene la scienza.Ma non ho mai trovato una spiegazione sensata per questo particolare byplay (le carte alfabetiche esadecimali).


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...