Diversi sistemi di base numerici

1

Sto facendo un incarico estivo per AP Computer Science. Per questo sto imparando su diversi sistemi di base di numeri e su come convertirli. Questi argomenti mi hanno portato a chiedermi perché i programmatori usino sistemi di base numerici diversi. Quindi mi stavo chiedendo

Perché i programmatori usano diversi sistemi di base numerici? Perché non utilizzare il familiare sistema decimale?

    
posta Rishi Kavikondala 20.07.2016 - 01:00
fonte

2 risposte

7

I computer utilizzano Codice binario .

Il binario viene utilizzato per codificare sia le istruzioni che i dati. Questo perché i transistor memorizzano e manipolano il binario molto bene. Si scopre che con abbastanza operazioni booleane, è possibile eseguire le operazioni matematiche di addizione, sottrazione, moltiplicazione, divisione, ecc ...

È possibile utilizzare una base diversa da binario, ma tradizionalmente non ha avuto molto successo. Tuttavia, alcune tecnologie dei transistor SSD memorizzano più valori per cella (sebbene di solito una potenza di 2, ancora). I tubi a vuoto hanno sostenuto piuttosto bene stati di più di 2 valori ...;)

I programmatori spesso hanno bisogno di sapere quali bit sono impostati e quali sono chiari in uno schema multi-bit (come "byte" o "parole"). Se devi saperlo, base-2, base-8 e base-16 sono tutti più direttamente utili di base-10. Il binario è il modo più semplice per vedere i singoli bit, ma diventa molto lungo piuttosto rapidamente. Con i computer a 32 e 64 bit in questi giorni, esadecimale (base-16) è preferito: ogni cifra esadecimale rappresenta 4 bit, quindi un valore a 64 bit è di 16 cifre esadecimali invece di 64 cifre binarie.

Octal (base-8) usato per alcuni computer. Il Digital Equipment Corporation PDP-8, ad esempio, era un computer a 12 bit. Si prestava bene alla base 8, quindi una "parola" a 12 bit era di 4 cifre ottali. Octal funziona ancora, ma in qualche modo è caduto per strada con la standardizzazione su byte da 8 bit. (Anche le 3 cifre esadecimali avrebbero funzionato, ma il campo opcode principale del set di istruzioni era 3 bit, e in quei giorni i programmatori passavano molto tempo a guardare il codice macchina.)

Nota che, proprio come i programmatori usano una varietà di basi numeriche, ancora oggi i programmatori usano una grande varietà di differenti

Questi sono tutti modi di codificare (e successivamente interpretare) le informazioni binarie, per non parlare di come condividere tali informazioni con gli umani.

La serializzazione è un altro termine pertinente; è un modo di trasformare le rappresentazioni per vari scopi, come la leggibilità umana o la trasmissione in rete.

    
risposta data 20.07.2016 - 01:16
fonte
1

Si riduce sempre allo spazio. In un computer moderno, qualsiasi spazio di indirizzamento è un potere di 2. E.g. è possibile adattare 256 valori diversi in un byte (2 ^ 8), 65536 in una parola di 2 byte (2 ^ 16). Direttamente collegato a questo, le dimensioni della memoria hanno solo un potere di 2. Esprimere questi valori come decimali non "adattano" lo spazio degli indirizzi, il che significa che non si esauriscono le cifre nel punto in cui lo spazio è riempito. Dieci non è nativo di un computer, è nativo di un essere umano che usa le sue dita per contare.

Se guardiamo il byte e contiamo fino a quando non è pieno, a 16 basi, passeremmo da 00 a FF. Non avremmo mai bisogno di più di 2 cifre ed è ovvio che 80 è a metà strada. È anche facile convertire in binario perché è possibile associare ogni cifra da 16 basi a quattro cifre a due basi (bit). Quindi, se devi gestire le maschere di bit, 16-base sarebbe molto più facile di 10-base.

    
risposta data 21.07.2016 - 22:28
fonte