este tot 1s și 0s: cum Calculatoare harta lumea fizică
numărul „12” nu este valoarea 12 într-o cutie de ouă. Cuvântul „stâncă” nu este piatra pe care o întâlnești afară. În schimb, ele sunt doar simboluri, create dintr-o colecție de alte simboluri, care reprezintă concepte specifice care mapează bine lumea din jurul nostru. Sunt instrumente care ne dau capacitatea de a descompune lumea, o masă de materie, în bucăți gestionabile. Le folosim, nu pentru că sunt obiectiv „adevărate”, ci pentru că sunt utile în îndeplinirea obiectivelor noastre, având în vedere un set de restricții fizice.
în esență, utilizarea computerelor binare nu este mai complicată decât atât. Doar un alt sistem creat de om creat pentru a atinge un anumit scop, având în vedere un anumit set de restricții.
înainte de a ne gândi la modul în care computerele folosesc sistemul binar, este util să ne gândim de ce folosim sistemul Denar. Scopul nostru este de a putea reprezenta valori numerice și de a comunica aceste valori altora. Ne putem imagina un sistem în care am avut un caracter nou pentru fiecare număr imaginabil. De exemplu, 156 ar fi de fapt un tip de linie squiggly cu un cârlig deasupra, care nu trebuie confundat cu simbolul pentru 38, care ar fi reprezentat de un cerc cu o linie peste partea de sus. Acesta ar fi cel mai eficient mod de a reprezenta valorile, deoarece ai avea nevoie de un singur personaj la un moment dat pentru a reprezenta chiar și cele mai mari numere, în loc de un lanț de caractere. Dar nu ar fi cel mai practic. Imaginați-vă un profesor de clasa 1 testându-și elevii cu privire la diferența dintre personajul care reprezintă 1.589 și personajul care reprezintă 2.000.478 și toate personajele dintre ele.
în mod clar, există o limită a numărului de caractere pe care dorim să le avem disponibile în sistemul nostru de reprezentare. Deci, ce zici de capătul opus al spectrului: un sistem de evidență cu un singur caracter disponibil? Sigur, este posibil — acum arată-mi 2.000.478 folosind un sistem de bază-1. În mod evident, acest lucru este, de asemenea, impracticabil.
dintr-o dată, sistemul base-10 are sens nu ca singurul sistem numeric disponibil, ci o potrivire bună, având în vedere nevoia noastră de practic, eleganță și eficiență. Cu doar 10 caractere disponibile, pot reprezenta cu ușurință numărul 2.000.478 prin înmulțirea valorii numerice a acelei coloane cu următoarea putere de 10, așa cum se demonstrează mai jos:
- 2 x 10 dela= 2.000.000
- 0 x 10ol= 0
- 0 x 10lama= 0
- 0 x 103= 0
- 4 x 102 = 400
- 7 x 101 = 70
- 8 x 10⁰ = 8
suma = 2.000.478
ce mare sistem de reprezentare a valorilor. Deci, de ce computerele nu folosesc acest sistem?
De La Denar la binar
curenții electrici fie funcționează (deschis / pornit), fie nu sunt (închis / oprit), ceea ce înseamnă că avem două caractere de valoare disponibile pentru noi: 1 și 0. Având în vedere aceste restricții, putem folosi același methodolgy pe care l-am folosit pentru a alege sistemul base-10 pentru a găsi un sistem de reprezentare pe care computerele îl pot folosi.Cu doar două stări disponibile pentru a reprezenta caractere diferite, singura altă alternativă la binar ar fi un sistem de evidență. Dar pentru a reprezenta valoarea 255 într-un sistem de calcul, am avea nevoie de 255 de cifre. Asta e 255 „pe” tranzistori pentru a reprezenta un număr relativ mic. Binar are nevoie doar de 8 pentru a atinge același obiectiv.
Iată cum binary face asta.
un sistem de bază 2 funcționează similar cu sistemul de bază-10, dar în loc să înmulțească valoarea fiecărei coloane cu următorul multiplu de 2, acestea sunt în schimb multipled de următorul multiplu de 2. De exemplu, numărul binar 10100 poate fi tradus într-un număr de bază 10 prin simpla adăugare a valorilor calculate de mai jos împreună:
- 1 x 2 str = 16
- 0 x 23 = 0
- 1 x 22 = 4
- 0 x 21 = 0
- 0 x 2⁰ = 0
de la biți la octeți
de aici, putem începe să construim o convenție pentru modul de utilizare a acestui sistem numeric pentru a cartografia lumea din jurul nostru pe impulsuri electrice de pornire și oprire. În primul rând, să dăm caracterelor noastre un nume: cifre binare sau biți pe scurt, cea mai mică unitate de date dintr-un computer.
în continuare vom determina câți biți va fi nevoie pentru a reprezenta o valoare non-numerică, cum ar fi o literă sau un caracter special. Acest proces este la fel de inventat ca procesul de alegere a unui sistem numeric pentru a reprezenta valoarea. Avem anumite obiective, anumite instrumente prestabilite și o dorință generală de eleganță și eficiență. Există 101 caractere pe o tastatură, ceea ce înseamnă că va trebui să reprezentăm 101 în binar ca valoare maximă. Se pare că 101 în baza-10 este numărul 01100101 în binar. Aceasta este o cerință de bază de 7 tranzistori disponibili dacă dorim să mapăm fiecare tastă la o valoare numerică specifică. Dar dacă există alte personaje pe care vrem să le reprezentăm? Cu 7, totul pornit, reprezentăm doar până la numărul 127 din Baza-10. Poate la fel de bine să ne dea un pic mai mult pentru a lucra cu.
și astfel, avem octeți, unitatea de bază pentru măsurarea datelor, despre care se spune că reprezintă cel puțin un singur caracter. Acum putem reprezenta valorile de la 0-255 (00000000-11111111).
deoarece computerele pot înțelege doar numerele, codul standard american pentru schimbul de informații (ASCII) a fost stabilit pentru a atribui fiecărui caracter de pe tastatură o valoare numerică specifică, așa cum este descris mai jos:
de exemplu, putem reprezenta nuanța pixelului verde prezentat mai sus la locație (1,0) în RGB și binar de mai jos:
- valorile RGB: (6, 250, 7)
- binar: 00000110, 11111010, 00000111
în cele din urmă, putem reprezenta date de sunet în binar, precum și folosind „eșantionare”. Graficând undele sonore ale unui sunet înregistrat și notând valorile înălțimilor undelor la intervale regulate, putem apoi să convertim aceste valori în binare și apoi să recreăm acea undă sonoră folosind acele valori binare mai târziu.
de exemplu, unda sonoră de mai sus are o valoare zecimală de 8 la intervalul de timp 1, dându-i o valoare de octet de 00001000.
de la binar la Logic
există multe moduri diferite de a stoca date binare, inclusiv carduri perforate, bandă magnetizată, discuri optice etc. Toți folosesc această convenție de reprezentare a valorilor într-un sistem de bază-2. Cu toate acestea, reprezentarea lumii în binar este doar jumătate din bătălie. Cealaltă jumătate operează pe ea. Introduceți operatorii la nivel de biți.
operatorii bit funcționează pe biți individuali și sunt operațiile aritmetice fundamentale pe care le folosește un procesor. Fiecare operator bit are un set de reguli predeterminate care produc o anumită ieșire dată două intrări.
operatorii de biți și ieșirile lor corespunzătoare
puteți recunoaște aceste instrumente ca fiind cele care fac parte dintr-un sistem pe care l-am folosit cu mult înainte ca electricitatea să fie descoperită: logica. În timp ce un operator bit poate părea străin, acestea sunt derivate din operatori logici și, la fel ca sistemele numerice, folosim operatori logici ca operatori bit, deoarece ne servesc scopurile în mod eficient și elegant, având în vedere constrângerile noastre fizice actuale.
scopul nostru este de a lua două valori diferite reprezentate de două caractere posibile produc o nouă valoare în conformitate cu un set de reguli deterministe. Puteți vedea cum sistemul nostru de logică propozițională se traduce bine în logica computațională mai jos:
gândiți-vă la operatorul AND În contextul acestei propoziții: „Bob a mâncat prânzul și Bob a mers la film.”Dacă prima afirmație este adevărată și a doua afirmație este falsă, atunci propoziția este falsă.
T& F = f
dar dacă prima afirmație este adevărată și a doua afirmație este adevărată atunci afirmația este adevărată.
T& T = T
Ce zici de operatorul OR: „Bob a mâncat prânzul sau Bob a mers la film”. Dacă prima afirmație este adevărată și a doua afirmație este falsă, propoziția este încă adevărată.
T v F = T
dar dacă ambele sunt false atunci propoziția este falsă.
F v F = F
acum înlocuiți T-urile și F-urile cu 1 și 0 și avem blocurile de construcție pentru manipularea binarului pentru a crea noi șiruri de valori binare și, prin urmare, noi reprezentări ale valorilor. Folosim acești operatori bit în porți logice, comutatoare electronice care folosesc această logică pentru a produce noi valori. Imaginați-vă următorul scenariu:
trebuie să aprindeți LED-ul din dreapta jos într-un calculator pentru a începe afișarea numerelor 0, 1, 3, 4, 5, 6, 7, 8, și 9, dar nu numărul 2. Asta înseamnă că numerele binare 00, 01, 100, 101 110, 111, și 1001, dar nu 10 trebuie să producă un singur semnal ON (1). Pentru a transforma aceste semnale electrice într-un singur semnal pentru acel LED, putem lega 3 sau porți logice și o poartă nu logică pentru a ne asigura că aceste valori au ca rezultat fie un 1, fie un 0. Mai jos, puteți vedea un exemplu al numărului 7 reprezentat în binar (1110) rezultând un singur semnal ON, ceea ce duce la iluminarea LED-ului din dreapta jos.
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. Fotonii, de exemplu, s-au dovedit a prezenta un comportament aparent contradictoriu, reprezentând mai multe stări simultan. Comportamentul multi-stat ne oferă valori suplimentare cu care să ne jucăm pe lângă pornirea/oprirea tipică pe care o obținem în general cu semnalele electrice. În loc să folosească un pic pentru a stoca date, computerele cuantice folosesc qubiți, care pot fi fie 1, fie 0, fie ambele în același timp.