È Tutto 1s e 0s: Come Computer di Mappa del Mondo Fisico
Il numero “12” non è il valore di 12 in un cartone di uova. La parola “roccia” non è la roccia che si incontra fuori. Invece sono semplicemente simboli, creati da una raccolta di altri simboli, che rappresentano concetti specifici che si adattano bene al mondo che ci circonda. Sono strumenti che ci danno la capacità di abbattere il mondo, una massa di materia, in pezzi gestibili. Li usiamo, non perché siano oggettivamente “veri”, ma perché sono utili nel raggiungere i nostri obiettivi data una serie di restrizioni fisiche.
In sostanza, l’uso del binario da parte dei computer non è più complicato di così. Solo un altro sistema artificiale creato per raggiungere un obiettivo con una certa serie di restrizioni in mente.
Prima di pensare a come i computer utilizzano il sistema binario, è utile pensare al motivo per cui usiamo il sistema denario. Il nostro obiettivo è essere in grado di rappresentare valori numerici e comunicare tali valori agli altri. Possiamo immaginare un sistema in cui abbiamo avuto un nuovo carattere per ogni numero immaginabile. Ad esempio, 156 sarebbe in realtà un tipo di linea ondulata con un gancio in cima, da non confondere con il simbolo per 38, che sarebbe rappresentato da un cerchio con una linea attraverso la parte superiore. Questo sarebbe il modo più efficiente di rappresentare i valori in quanto avresti sempre bisogno di un solo carattere alla volta per rappresentare anche i numeri più grandi, invece di una catena di caratteri. Ma non sarebbe il più pratico. Immagina un insegnante di 1 ° grado che prova i suoi studenti sulla differenza tra il personaggio che rappresenta 1.589 e il personaggio che rappresenta 2.000.478 e tutti i personaggi in mezzo.
Chiaramente, c’è un limite a quanti caratteri vogliamo avere disponibili nel nostro sistema di rappresentazione. Quindi, che dire dell’estremità opposta dello spettro: un sistema di conteggio con un singolo carattere disponibile? Certo, è possibile-ora mostrami 2.000.478 usando un sistema base – 1. Chiaramente, anche questo è poco pratico.
Improvvisamente, il sistema base-10 ha senso come non l’unico sistema numerico disponibile, ma una buona misura data la nostra esigenza di praticità, eleganza ed efficienza. Con solo 10 availible caratteri posso rappresentare il numero 2,000,478 facilmente moltiplicando il valore numerico della colonna successiva potenza di 10, come illustrato di seguito:
- 2 x 10⁶= 2.000.000 di
- 0 x 10⁵= 0
- 0 x 10⁴= 0
- 0 x 103= 0
- 4 x 102 = 400
- 7 x 101 = 70
- 8 x 10⁰ = 8
SOMMA = 2,000,478
Quello che un grande sistema di rappresentazione di valori. Quindi perché i computer non usano quel sistema?
Dal Denary Binario
le correnti Elettriche sono in esecuzione (aperto/a) o non (chiuso/off) e questo significa che abbiamo due caratteri disponibili per noi: 1 e 0. Date queste restrizioni, possiamo usare lo stesso methodolgy che abbiamo usato per scegliere il sistema base-10 per trovare un sistema di rappresentazione che i computer possono utilizzare.Con solo due stati disponibili per rappresentare caratteri diversi, l’unica altra alternativa al binario sarebbe un sistema di conteggio. Ma per rappresentare il valore 255 in un sistema di conteggio avremmo bisogno di 255 cifre. Sono 255 transistor” on ” per rappresentare un numero relativamente piccolo. Binario ha bisogno solo 8 per raggiungere lo stesso obiettivo.
Ecco come fa binary.
Un sistema base 2 funziona in modo simile al sistema base-10 ma invece di moltiplicare il valore di ogni colonna per il successivo multiplo di 2, vengono invece moltiplicati per il successivo multiplo di 2. Per esempio, il numero binario 10100 può essere tradotto in base 10 numero, semplicemente aggiungendo i valori calcolati di seguito:
- 1 x 2⁴ = 16
- 0 x 23 = 0
- 1 x 22 = 4
- 0 x 21 = 0
- 0 x 2⁰ = 0
Da Bit a Byte
Da qui è possibile iniziare a creare una convenzione per l’utilizzo di questo sistema numerico in grado di mappare il mondo intorno a noi in impulsi elettrici di on e off. Per prima cosa, diamo un nome ai nostri personaggi: cifre binarie o Bit in breve, la più piccola unità di dati in un computer.
Successivamente determineremo quanti bit ci vorranno per rappresentare un valore non numerico, come una lettera o un carattere speciale. Questo processo è artificioso come il processo di selezione di un sistema numerico per rappresentare il valore. Abbiamo alcuni obiettivi, alcuni strumenti prestabiliti e un desiderio generale di eleganza ed efficienza. Ci sono 101 caratteri su una tastiera, il che significa che dovremo rappresentare 101 in binario come valore massimo. Risulta 101 in base-10 è il numero 01100101 in binario. Questo è un requisito di base di 7 transistor disponibili se vogliamo mappare ogni chiave a un valore numerico specifico. Ma cosa succede se ci sono altri personaggi che vogliamo rappresentare? Con 7, tutto acceso, rappresentiamo solo fino al numero 127 in base-10. Tanto vale darci un altro pezzo con cui lavorare.
E quindi, abbiamo byte, l’unità di base per la misurazione dei dati, detto di rappresentare al minimo, un singolo carattere. Ora possiamo rappresentare i valori da 0-255 (00000000-11111111).
Come i computer possono comprendere solo i numeri, l’American Standard Code for Information Interchange (ASCII) è stato stabilito di assegnare ad ogni carattere sulla tastiera di uno specifico valore numerico, come illustrato di seguito:
ad esempio, ecco come rappresentare la frase “Ciao Mondo!”in binario:
- Testo: Ciao mondo!
- Numeri ASCII: 072 101 108 108 111 032 087 111 114 108 100 033
- Binario: 00110000 00110111 00110010 00100000 00110001 00110000 00110001 00100000 00110001 00110000 00111000 00100000 00110001 00110000 00111000 00100000 00110001 00110001 00110001 00100000 00110000 00110011 00110010 00100000 00110000 00111000 00110111 00100000 00110001 00110001 00110001 00100000 00110001 00110001 00110100 00100000 00110001 00110000 00111000 00100000 00110001 00110000 00110000 00100000 00110000 00110011 00110011
Come testo, immagini, inoltre, devono essere convertiti in binario. Possiamo rappresentare le immagini in binario suddividendo un’immagine in una griglia di pixel e suddividendo ogni colore pixel in una combinazione di 3 colori (rosso, verde e blu), tipicamente indicato come valore RGB pixel. Il valore massimo che ciascuno di questi colori può avere individualmente è 255 e il minimo è 0, il che significa che ogni valore di colori per ciascun pixel può essere rappresentato da 1 byte per un totale di 3 byte per pixel.
ad esempio, siamo in grado di rappresentare l’ombra di un pixel verde sopra indicato alla locazione (1,0) in RGB e binari di seguito:
- i Valori RGB: (6, 250, 7)
- Binario: 00000110, 11111010, 00000111
Infine, siamo in grado di rappresentare i dati audio in formato binario e l’utilizzo di “campionamento”. Disegnando graficamente le onde sonore di un suono registrato e notando i valori delle altezze delle onde a intervalli regolari, possiamo quindi convertire quei valori in binari e quindi ricreare quell’onda sonora usando quei valori binari in un secondo momento.
Per esempio, l’onda sonora di cui sopra ha un valore decimale di 8 all’intervallo di tempo 1, dandogli un valore di byte di 00001000.
Dal binario alla logica
Ci sono molti modi diversi per memorizzare i dati binari tra cui schede perforate, nastro magnetizzato, dischi ottici, ecc. Tutti usano questa convenzione di rappresentare i valori in un sistema base-2. Tuttavia, rappresentare il mondo in binario è solo metà della battaglia. L’altra metà sta operando su di esso. Immettere operatori bit per bit.
Gli operatori bit a bit operano su singoli bit e sono le operazioni aritmetiche fondamentali utilizzate da una CPU. Ogni operatore bit a bit ha un insieme di regole predeterminate che producono un determinato output dato due input.
Si possono riconoscere questi strumenti, come quelli che fanno parte di un sistema che abbiamo utilizzato a lungo prima che l’elettricità è stato anche scoperto: la logica. Mentre un operatore bit a bit può sembrare estraneo, sono derivati da operatori logici e come i sistemi numerici usiamo operatori logici come operatori bit a bit perché servono ai nostri scopi in modo efficiente ed elegante dati i nostri attuali vincoli fisici.
Il nostro obiettivo è quello di prendere due valori diversi rappresentati da due possibili caratteri produrre un nuovo valore secondo un insieme di regole deterministiche. Puoi vedere come il nostro sistema di logica proposizionale si traduce bene in logica computazionale di seguito:
Pensa all’operatore AND nel contesto di questa frase: “Bob ha pranzato e Bob è andato al cinema.” Se la prima affermazione è vera e la seconda affermazione è falsa, allora la frase è falsa.
T& F = F
Ma se la prima istruzione è vera e la seconda istruzione è vera, allora l’istruzione è vera.
T&T = T
Che dire dell’operatore OR: “Bob ha pranzato o Bob è andato al cinema”. Se la prima affermazione è vera e la seconda affermazione è falsa, la frase è ancora vera.
T v F = T
Ma se entrambi sono falsi allora la frase è falsa.
F v F = F
Ora sostituisci le T e le F con 1 e 0 e abbiamo gli elementi costitutivi per manipolare il binario per creare nuove stringhe di binario e quindi nuove rappresentazioni di valori. Usiamo questi operatori bit a bit in porte logiche, interruttori elettronici che utilizzano questa logica per produrre nuovi valori. Immagine il seguente scenario:
È necessario illuminare il LED in basso a destra in una calcolatrice per iniziare a visualizzare i numeri 0, 1, 3, 4, 5, 6, 7, 8, e 9 ma non il numero 2. Ciò significa che i numeri binari 00, 01, 100, 101 110, 111, e 1001 ma non 10 devono produrre un singolo segnale ON (1). Per trasformare quei segnali elettrici in un singolo segnale ON per quel LED possiamo concatenare 3 O porte logiche e una porta NON logica insieme per garantire che tali valori risultino in un 1 o in uno 0. Qui di seguito, è possibile vedere un esempio del numero 7 rappresentato in binario (1110) risultante in un singolo segnale ON, che si traduce nel LED in basso a destra che si accende.
Quantum Computing
The only exception to this rule of representing the world in 1’s and 0’s in computers lies in Quantum computing.
Quantum computing attempts to use the “spooky” nature of sub-atomic particles to represent represent data. I fotoni, ad esempio, hanno dimostrato di esibire un comportamento apparentemente contraddittorio, rappresentando più stati contemporaneamente. Il comportamento multi-stato ci dà valori extra con cui giocare oltre al tipico on / off che generalmente otteniamo con i segnali elettrici. Invece di usare un bit per memorizzare i dati, i computer quantistici usano qubit, che possono essere 1 o 0 o entrambi allo stesso tempo.