Sappiamo che un computer normale in pratica conosce solo due stati e che chiamiamo rispettivamente questi stati 0 e 1. Questo sembra arbitrario, potremmo chiamarli "a" e "b", o anche 3 e 4. C'è una ragione per la convenzione di nominarli 0 e 1?
Di certo non è arbitrario. L'informatica è radicata nella matematica. La notazione binaria in matematica è anche nota come base-2.
Base-10 ci dà 0-9 cifre. Base-8 (ottale) usa 0-7, e base-16 (esadecimale) usa 0-9 e a -f per rappresentare le sei cifre extra non presenti nella notazione decimale.
Il fatto è che, indipendentemente da quale base stai usando, zero è sempre zero e uno è sempre uno. Quindi, una volta che utilizzi la notazione in base 2, stai praticamente ricorrendo a 0 e 1.
I primi computer erano in realtà decimali, usati esclusivamente per i calcoli. Poi la matematica ha iniziato a incorporare la logica, e la teoria dell'informatica pensa davvero, e grazie a cose come la completezza di Turing e gli stati transistor (on o off), gli scienziati informatici hanno capito che la vera / falsa logica e la matematica di base 2 erano il modo migliore per raggiungere le macchine per uso generico che usiamo ora.
Non è proprio vero che sono (sempre) nominati 0
e 1
. Dipende dal tuo punto di vista.
Se hai a che fare con valori numerici, il computer lo fa in base-2, con le due cifre denominate 0
e 1
. E dato che i valori numerici rappresentano applicazioni di computer molto importanti, questa denominazione è davvero molto popolare.
Ma un singolo bit può anche rappresentare un valore booleano false
o true
, spesso abbreviato in F
e T
.
Da un punto di vista dell'ingegneria elettrica, un bit è rappresentato da uno dei due livelli di tensione, essendo High
e Low
, abbreviato in H
e L
. E la mappatura da H / L a T / F può venire in entrambe le versioni. La mappatura naturale è che H sta per 1 o T, e L per 0 o F. Ma a volte i progettisti dell'hardware scelgono di rendere L lo stato attivo (vero) del segnale, e H lo stato inattivo (falso): quello è chiamato "attivo basso".
Dato che il codice macchina è taggato qui, penso che sia perché puoi eseguire il calcolo del numero in base. È più facile vedere quando hai più di uno stato su cui operare, ad es. una serie di 0 e amp; 1s. Se usi As & Bs, puoi avere AA e BB. Ma non è chiaro quali operazioni puoi fare su qualunque cosa rappresentino questi stati e probabilmente vorrai convertirli in numeri per ragionarli.
D'altra parte, se hai 10 e 11, è molto intuitivo fare aritmetica e ampli base-2; operazioni logiche su di loro.
Un altro modo per vederlo, base-2 è usato perché l'hardware è basato su 2 stati. Non è difficile immaginare (è possibile emulare nel software) creare una macchina che può avere 3 stati in grado di eseguire aritmetica di base 3 su di essa. Una volta terminato l'esercizio, vedi il costo & beneficio dei sistemi non di base-2.
Leggi altre domande sui tag machine-code