Il numero intero decimale massimo che può essere memorizzato nella memoria di un computer con elaboratore di testi a 8 bit?

cs.stackexchange https://cs.stackexchange.com/questions/123733

Domanda

In realtà mi sto preparando per un esame e nell'esame dell'ultimo anno questa domanda.è stato chiesto. cioè

Il numero intero decimale massimo che può essere memorizzato nella memoria di un computer con elaboratore di testo a 8 bit?

UN) (128)10
B) (127)10
C) (129)10
D) (255)10

Risposta a questa domanda.come indicato nella chiave di risposta è b) 127.E non ho idea di come siano arrivati ​​a questo risultato.

acc.per quanto mi risulta, abbiamo 8 bit, ovvero 28 = 256 COSÌ 255 dovrebbe essere il numero intero massimo che possiamo memorizzare.

MODIFICARE - Un'altra cosa molto simile.chiesto nello stesso esame era

Il numero intero massimo consentito in un computer con un elaboratore di testi a n bit e una parola per numero intero è uguale a

UN) 2 n-1 - 1
B) 2 N - 1
C) 2 n-1 + 1
D) 2 N + 1

La sua risposta.È a)2 n-1 - 1 (acc.alla risposta ufficiale.chiave).

Mettendo n = 8 dall'alto que.abbiamo ottenuto la risposta 127.Ma ancora una volta non ho idea di come abbiano ottenuto anche questa risposta.

È stato utile?

Soluzione

Quello che segue è il verdetto ragionevole, credo, senza ulteriore contesto, come affermato dal commento di Steven e dal commento di Harold.

Il numero intero massimo (decimale) che può essere memorizzato nella memoria di un computer con elaboratore di testo a 8 bit dipende dal contesto, ovvero se si parla di numeri interi senza segno o di numeri interi con segno.

Secondo questa pagina di Wikipedia sull'informatica a 8 bit,

Ci sono $2^8$ (256) diversi valori possibili per 8 bit.Quando non ha segno, ha valori possibili compresi tra 0 e 255;quando firmato, ha da -128 a 127.

La risposta naturale, senza ulteriore contesto, dovrebbe essere $2^8-1=255$.Non abbiamo visto nessun processore di computer che interpreti una sequenza di 8 bit (a livello base, tanto per essere più sicuri) come un numero intero superiore a 255.D'altra parte, quasi tutti i processori dei computer oggi possono interpretare una sequenza di 8 bit come un numero intero (senza segno) grande fino a 255 .Infatti, come detto in questa bella risposta di Kristian H,

I numeri senza segno sono un'interpretazione di una sequenza di bit.È anche l'interpretazione più semplice e più utilizzata internamente alla CPU poiché gli indirizzi e i codici operativi sono semplicemente bit.L'indirizzamento della memoria/stack e l'aritmetica sono le basi dell'elaborazione del microprocessore.Salendo nella piramide dell'astrazione, un'altra interpretazione frequente dei bit è quella come carattere (ASCII, Unicode, EBCDIC).


Detto quanto sopra, consentitemi di difendere la scelta dell'autore di quell'esame, anche se NON formulerei la suite di domande e risposte come presentata nella domanda.

La domanda dell'esame è stata concepita per testare la comprensione di base dello studente sulla rappresentazione dei numeri nei processori dei nostri computer binari.

Se uno studente sceglie, presumibilmente per qualche buona ragione, "b) (127)10", possiamo essere sicuri che lo studente conosca le nozioni di base sulla rappresentazione di un intero con segno complemento a due.Di questi 8 bit un bit deve essere utilizzato per rappresentare il segno.In qualche modo, l'intervallo degli interi positivi è inferiore di uno rispetto all'intervallo degli interi negativi.Quindi, l'intero con segno massimo in 8 bit è $2^{8-1}-1$.Possiamo essere certi che lo studente saprà che il massimo intero senza segno che può essere rappresentato in 8 bit potrebbe essere $2^8-1=255$.

Tuttavia, se uno studente sceglie "d) (255)10", potrebbe essere difficile giustificare che lo studente sappia cosa succede con gli interi con segno.Quindi, se l'esame è finalizzato a verificare quanto gli studenti hanno imparato, la scelta b) potrebbe essere opportuna.

Pertanto, nel contesto di un esame, uno studente avrebbe maggiori possibilità di essere considerato più esperto se venisse selezionata la scelta b) anziché la scelta d).O una migliore possibilità di ottenere un voto migliore.


Ancora una volta, lasciatemi sottolineare il verdetto di Harold, "questa non è una domanda ragionevole".Idealmente, per la scelta prevista di b), la domanda dovrebbe essere "il numero intero con segno massimo che può essere archiviato nella memoria di un computer con elaboratore di testi a 8 bit?"


Per una spiegazione dettagliata del complemento a due, consultare questa pagina di Wikipedia.

Altri suggerimenti

Ho avuto la stessa domanda durante il mio esame di informatica tecnica.Anche la risposta giusta era 127, il mio professore mi ha spiegato che il formato predefinito è il numero intero con segno, quindi l'intervallo andrebbe da -128 a 127.È possibile visualizzare 256 valori distinti, ma il massimo sarebbe comunque 127.

Con una singola parola da 8 bit è possibile rappresentare 256 valori diversi e distinti.Tuttavia, non c'è nulla nella prima domanda che ti limiti a usare una sola parola, puoi usare quante parole vuoi.Con due parole si possono già rappresentare 65536 valori, con 42 parole potremmo già rappresentare ogni particella dell'universo.Pertanto il massimo intero rappresentabile è arbitrariamente grande, o detto in altro modo non esiste un numero intero massimo.

La seconda domanda ti limita a usare una sola parola, ma c'è ancora un problema:ora sappiamo che possiamo rappresentare solo 256 valori distinti, ma la domanda non ci dice nulla su come tali valori sono codificati.Ad esempio, la codifica dei caratteri ISO8859-1 può rappresentare il segno di valuta generico internazionale (¤) come uno dei 256 valori, ma non può rappresentare il segno dell'Euro ().ISO8859-15 d'altra parte, può rappresentare il simbolo dell'Euro ma non il simbolo della valuta generica, e nessuno dei due può rappresentare il simbolo della valuta Bitcoin .

Lo stesso vale per i numeri:con 8 bit e una codifica unaria senza segno, posso rappresentare i numeri da 0 a 8.Con una codifica unaria con segno, posso rappresentare i numeri da -7 a +7, inclusi sia -0 che +0.Con una codifica unaria senza segno sfalsata di 42, posso rappresentare il numero da 42 a 50.

Indipendentemente dal fatto che utilizzi una codifica con segno o senza segno, unaria, binaria, decimale o qualche altra codifica, posso sempre rappresentare numeri arbitrariamente grandi introducendo un offset nella mia codifica.

Quindi, ancora una volta, anche per la seconda domanda è impossibile dare una risposta.

Per rispondere alla seconda domanda dovremmo conoscere la codifica, per rispondere alla prima domanda dovremmo conoscere la codifica e la dimensione della memoria.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a cs.stackexchange
scroll top