Condividi su facebook
Condividi su linkedin
Condividi su twitter
Condividi su pinterest
Condividi su google

Contenuti

Nell'informatica tecnica, i sistemi numerici sono importanti. Voglio dire, proprio come in qualsiasi altro campo. Devi sapere come rappresentare i tuoi numeri. Una rappresentazione numerica è quando prendi un insieme di numeri e lo trasformi in un insieme e fai operazioni con esso. Sembra terribilmente come gruppi in algebra astratta (ne abbiamo parlato in il post di informatica).

Ad ogni modo, prendi una serie di numeri o simboli e li numererai. L'insieme di questi simboli è chiamato alfabeto. Un esempio di alfabeto per il sistema decimale è:

\ sum {10} = [{0,1,2,3,4,5,6,7,8,9}]

Con questo alfabeto in base 10 rappresentiamo i nostri numeri nella nostra vita quotidiana.

Ora, questo non è l'unico sistema numerico utile esistente. Abbiamo anche:

Sistema doppio / binario = \ sum {2} = [0,1]
Sistema esadecimale = \ sum {16} = [0,1,2,3,4,5,6,7,8,9, A, B, C, D, E, F]

Quindi denotiamo qualsiasi sistema di numeri con base "b" come

\ sum {b} = [0, 1,… .., b-1]

Fatto divertente!

Ciascuno di questi sistemi ha il proprio uso e ovviamente vantaggi e svantaggi. Per l'informatica un sistema esadecimale è un modo molto utile per compattare una grande quantità di combinazioni all'interno di un insieme molto piccolo di caratteri.

Ad esempio, quando si utilizza il sistema esadecimale possiamo impacchettare 256 numeri in due caratteri. Anche se ci vorrebbero 128 caratteri se parliamo di bit o nel sistema binario. Ora, usiamo il binario nei computer perché abbiamo bisogno di un modo per trasmettere i segnali attraverso la corrente elettrica. Teoricamente potremmo avere più di due segnali, ma non va bene. Questo perché anche piccole fluttuazioni nei campi elettromagnetici intorno o nel vostro ambiente possono "capovolgere" un po 'con stati intermedi, quindi cerchiamo di tenerli il più distanti possibile, in modo che anche con piccole fluttuazioni, i nostri computer non vadano in crash. Questo è fondamentale ed è stato uno dei fallimenti dei primi computer. Fondamentalmente l'affidabilità e il costo sono il driver principale per l'utilizzo di solo 0 e uno.

Il computer ENIAC ha utilizzato 10 livelli di segnale! Il che ovviamente richiede un livello di precisione molto alto e operazioni di base come l'aggiunta sono molto complicate da eseguire ...

Numeri con lunghezza finita

Sì, in matematica puoi fare quello che vuoi. E quindi puoi avere numeri che hanno una lunghezza prestabilita. Normalmente ignoriamo sempre gli zeri a sinistra in un numero. Ma un numero con una lunghezza finita ne una base b può essere indicato come:

n: \ sum \ limits_ {b} ^ {n} {}

Quindi il numero 183 sarebbe indicato come

00183? \ sum \ limits_ {10} ^ {5} {}

** Questo non è necessariamente il modo corretto di rappresentare i numeri **

Rappresentazione numerica naturale

Attenzione: diventerà molto matematico e complicato!

Let b? N dove b> 1, quindi ogni numero naturale Z dove 0? z? b ^ n -1 è rappresentabile come una parola di lunghezza n via

\ sum \ limits_ {b} ^ {n} {}

fino a [eq 1.]

z = \ sum \ limits_ {i = 0} ^ {n-1} {z_ {i} b ^ {i}} = z_ {0} b ^ {0} + z_ {1} b ^ {1} + z_ {2} b ^ {2}

E

z_ {i}? \ sum \ limits_ {b} {} = [0,1,… b-1]

Dove i = 0,1,… .., n-1

Ok ora cosa? Questo è espresso in parole matematiche. In parole leggibili dall'uomo guarda l'eq. 1. Hai una somma per rappresentare qualsiasi numero z in qualsiasi sistema che inizia con n-1 e termina con i = 0. Abbiamo discusso n in precedenza come la lunghezza massima. b è la base, quindi la base 10 o la base 2 per esempio. Questa è una specie di notazione scientifica. Vediamo un esempio per la base 10:

z = \ sum \ limits_ {i = 0} ^ {3} {z_ {i} 10 ^ {i}} = 0 * 10 ^ {0} + 4 * 10 ^ {1} + 2 * 10 ^ {2} + 1 * 10 ^ {3} = 0 + 40 + 200 + 1000

Sostituiamo n-1 dall'eq. Da 1 a 3, perché ci sono 4 cifre sul numero. Quindi n = 4-1 = 3.

Quindi per un numero binario 111011

z = \ sum \ limits_ {i = 0} ^ {5} {z_ {i} 2 ^ {i}} = 1 * 2 ^ {0} + 1 * 2 ^ {1} + 0 * 2 ^ {2} + 1 * 2 ^ {3} + 1 * 2 ^ {4} + 1 * 2 ^ {5} = 1 + 2 + 0 + 8 + 16 + 32 = 59

Spiegato in modo più semplice e con meno matematica:

Numero massimo che puoi rappresentare

z_ {max} = \ sum \ limits_ {i = 0} ^ {n-1} {b ^ {i}} = b ^ {n} -1

Aggiungiamo -1 perché vogliamo rappresentare anche Zero perché stiamo parlando di numeri interi positivi. Quindi in esadecimale con 2 simboli possiamo rappresentare:

z_ {max} = \ sum \ limits_ {i = 0} ^ {1} {16 ^ {i}} = 16 ^ {2} -1 = 31

Da zero fino a 31.

Conversione inversa

Ok bello, ora so come convertire in qualsiasi altro numero da decimali. Ora come faccio a convertire il decimale in binario (base 2) o in base b?

Convertiamo 47 in binario

47/2 = 23Riposo 1
23/2=11Riposo 1
11/2 = 5Riposo 1
5/2 = 2Riposo 1
2/2 = 1Riposo 0
1/2 = 0Riposo 1

Inizi fondamentalmente dividendo il numero per la base. Finché non si raggiunge un risultato uguale a zero. Ora che hai il tavolo lo leggi dal basso verso l'alto! Quindi il risultato è 101111 in base 2. Tutto questo può essere descritto attraverso lo schema di Horner o il metodo di Horner, un'equazione molto molto complessa che ci aiuta a convertire da qualsiasi base a qualsiasi base senza passaggi intermedi. Ma questo è davvero molto complicato, quindi ci limiteremo alle basi.

Metodo Horners

Poiché i computer hanno tempi difficili con i polinomi, doveva esserci un metodo per convertire da esadecimale o binario a decimale, giusto? Si assolutamente. Come abbiamo visto, qualsiasi conversione può anche essere trasformata in un polinomio. Controlliamo la nostra prima equazione:

z = \ sum \ limits_ {i = 0} ^ {n-1} {z_ {i} b ^ {i}} = z_ {0} b ^ {0} + z_ {1} b ^ {1} + z_ {2} b ^ {2}

Quale possiamo semplificare, giusto? Poiché ogni singola z viene moltiplicata per a b. E poi invece di risolvere un polinomio complesso, stiamo semplicemente moltiplicando per x. Cerchiamo prima di riordinare l'equazione in qualcosa di simile:

z = \ sum \ limits_ {i = 0} ^ {n-1} {z_ {i} b ^ {i}} = z_0 + b * (z_1 + b * (z_2 +… (b * (z_ {n-3 } + b * (z_ {n-2} + b * z_ {n-1})) ...))

Ora il metodo di Horner è molto complesso ma serve per risolvere polinomi di grado elevato! E se guardiamo la nostra equazione, il nostro polinomio è di grado i. Quindi l'utilizzo del metodo di Horner aiuta il computer a risparmiare tempo e generalizzare. Poiché vogliamo che qualsiasi equazione sia il più generale possibile.

Allena le tue abilità!

Metti alla prova le tue abilità di livello 1.0

1 / 3

Quanti numeri interi positivi puoi rappresentare in esadecimale in 10 caratteri?

2 / 3

Qual è il sistema numerico più efficiente per i computer in elaborazione?

3 / 3

Converti 101011 in decimale

Il tuo punteggio 

Il punteggio medio è 0%

0%