Perchè è un problema che ci vogliono 2 cifre per rappresentare il numero 10 in decimale? [chiuso]

0

Quindi usiamo il valore esadecimale che ha il vantaggio di salire fino a 15 in cifre singole A-F, ma perché è un problema che ci vogliono 2 cifre per rappresentare il numero 10 in decimale?

Stavo leggendo di esadecimali e ho trovato queste due righe:

Base 16 suggests the digits 0 to 15, but the problem we face is that it requires 2 digits to represent 10 to 15. Hexadecimal solves this problem by using the letters A to F.

La mia domanda è, perché dovremmo preoccuparci di quante cifre ci vuole per rappresentare un numero? - È più lento per il computer gestire un numero di 2 cifre rispetto a 1?

    
posta Crizly 27.05.2014 - 18:39
fonte

4 risposte

10

Perché 15 era il valore massimo di una "parola" in un determinato momento. Una "parola" si riferisce a (tra molte altre cose nel corso degli anni) il numero di bit che una CPU è progettata per funzionare come una singola cosa. 4 bit commutati 1111 rende il valore binario di 15.

Esadecimale è stato creato con lo scopo esplicito di poter dettare in un singolo carattere, il valore di una parola di memoria. Con un personaggio puoi dettare cosa è un valore binario tra 0000 e 1111 che è l'intero intervallo di una parola nel momento in cui è diventato un luogo comune da utilizzare.

Al giorno d'oggi il valore esadecimale si vede tipicamente in 8 gruppi di bit, quindi 8 bit essendo 2 valori esadecimali di solito vedete esadecimali in coppie che vanno da 0x00 a denotare zero o 0xFF a denotare 255 ( il più grande valore che può essere contenuto in 8 cifre binarie) ecc. Queste coppie si riferiscono a come ottetti, così chiamati perché si riferiscono al valore di 8 bit.

    
risposta data 27.05.2014 - 18:48
fonte
14

È un modo strano per esprimerlo, ma è solo un "problema" quando stai cercando di scrivere numeri esadecimali. Non è un problema in decimale. Se hai utilizzato 10 invece di A in esadecimale, allora 100 potrebbe essere analizzato come 1 0 0 o 10 0 , che sono due numeri molto diversi. Avresti bisogno di altri mezzi per separare le cifre. Un carattere per cifra evita tale problema.

    
risposta data 27.05.2014 - 18:50
fonte
1

Senza conoscere il contesto completo dell'affermazione questo è un po 'speculativo, ma è probabile che l'autore osservi che esadecimale è solo un'implementazione di Base 16.

In uno schema Base 16, hai bisogno di 16 simboli. Conosciamo già 10 simboli di questo tipo in decimali che possiamo facilmente "riutilizzare" senza confonderci. Quindi, nell'esecuzione esadecimale di Base 16, risolviamo il "problema" dei 6 simboli mancanti aggiungendo da A a F il nostro set di simboli numerici.

    
risposta data 27.05.2014 - 18:51
fonte
1

Quando si tratta di un problema, è perché causa una mancata corrispondenza tra la memoria richiesta per memorizzare un valore e la memoria richiesta per visualizzare un valore.

Ad esempio, prendere codici colore HTML. Ciascuno dei tre valori rosso, blu e verde ha un valore intero compreso tra 0 e 255. Nella memoria, questo è rappresentato come un singolo valore a 8 bit, con tutti i valori da 00 a FF che richiedono la stessa quantità di memoria per memorizzare o scrivere. Avere due cifre consente al parser di testo di essere molto specifico sul formato, mantenendo al minimo il numero di caratteri necessari. Esadecimale corrisponde esattamente alle allocazioni di memoria numerica; una singola cifra equivale a un singolo valore a 4 bit, due cifre equivalgono a un valore a otto bit e così via.

    
risposta data 27.05.2014 - 18:57
fonte

Leggi altre domande sui tag