det er alle 1s og 0s: hvordan computere kortlægger den fysiske verden

tallet “12” er ikke værdien 12 i en karton med æg. Ordet “rock” er ikke den klippe, du støder på udenfor. I stedet er de blot symboler, skabt af en samling af andre symboler, der repræsenterer specifikke begreber, der kortlægger godt til verden omkring os. De er værktøjer, der giver os evnen til at nedbryde verden, en masse stof, i håndterbare bidder. Vi bruger dem, ikke fordi de er objektivt “sande”, men fordi de er nyttige til at opfylde vores mål givet et sæt fysiske begrænsninger.

i det væsentlige er computerbrug af binær ikke mere kompliceret end det. Bare et andet menneskeskabt system skabt for at nå et mål med et bestemt sæt begrænsninger i tankerne.

før du tænker på, hvordan computere bruger det binære system, er det nyttigt at tænke over, hvorfor vi bruger denarysystemet. Vores mål er at være i stand til at repræsentere numeriske værdier og kommunikere denne værdi til andre. Vi kan forestille os et system, hvor vi havde en ny karakter for hvert tænkeligt tal. For eksempel ville 156 faktisk være en type krøllet linje med en krog på toppen, ikke at forveksle med symbolet for 38, som ville være repræsenteret af en cirkel med en linje på tværs af toppen. Det ville være den mest effektive måde at repræsentere værdier på, da du kun nogensinde har brug for et tegn ad gangen for at repræsentere selv de største tal i stedet for en kæde af tegn. Men det ville ikke være det mest praktiske. Forestil dig en 1. klasse lærer, der tester sine elever på forskellen mellem karakteren, der repræsenterer 1.589 og karakteren, der repræsenterer 2.000.478 og alle tegnene imellem.

det er klart, at der er en grænse for, hvor mange tegn vi vil have til rådighed i vores repræsentationssystem. Så hvad med den modsatte ende af spektret: et tally system med en enkelt tilgængelig karakter? Sikker på, det er muligt — Vis mig nu 2.000.478 ved hjælp af et base-1-system. Det er klart, at dette også er upraktisk.

pludselig giver base-10-systemet mening som ikke det eneste tilgængelige numeriske system, men en god pasform i betragtning af vores behov for praktisk, elegance og effektivitet. Med kun 10 tilgængelige tegn kan jeg let repræsentere tallet 2.000.478 ved at multiplicere den numeriske værdi af denne kolonne med den næste effekt på 10 som vist nedenfor:

  • 2 gange 10 dialekter= 2.000.000
  • 0 gange 10= 0
  • 0 gange 0
  • 4 gange 102= 400
  • 7 gange 101= 70
  • 8 gange 10⁰ = 8

sum = 2.000.478

hvilket stort system til at repræsentere værdier. Så hvorfor bruger computere ikke dette system?

fra Denary til binær

elektriske strømme kører enten (åben/tændt) eller de er ikke (lukket / slukket), hvilket betyder, at vi har to værditegn til rådighed for os: 1 og 0. I betragtning af disse begrænsninger kan vi bruge den samme metodeolgy, som vi brugte til at vælge base-10-systemet for at finde et repræsentationssystem, som computere kan bruge.Med kun to stater, der er tilgængelige til at repræsentere forskellige tegn, ville det eneste andet alternativ til binær være et tally-system. Men for at repræsentere værdien 255 i et tally-system ville vi have brug for 255 cifre. Det er 255″ on ” transistorer til at repræsentere et relativt lille antal. Binary behøver kun 8 for at nå det samme mål.

Sådan gør binary det.

et base 2-system fungerer på samme måde som base-10-systemet, men i stedet for at multiplicere værdien af hver kolonne med det næste multiplum af 2 multipliceres de i stedet med det næste multiplum af 2. For eksempel kan det binære tal 10100 oversættes til et base 10-tal ved blot at tilføje de beregnede værdier nedenfor:

  • 1 * 2 L = 16
  • 0 * 23 = 0
  • 1 * 22 = 4
  • 0 * 21 = 0
  • 0 * 2⁰ = 0

fra Bits til Bytes

fra her kan vi begynde at opbygge en konvention for, hvordan man bruger dette numeriske system til at kortlægge verden omkring os på elektriske impulser til og fra. Lad os først give vores tegn et navn: binære cifre eller Bits for kort, den mindste dataenhed i en computer.

dernæst bestemmer vi, hvor mange bits det vil tage at repræsentere en ikke-numerisk værdi, som et bogstav eller specialtegn. Denne proces er lige så konstrueret som processen med at vælge et numerisk system til at repræsentere værdi. Vi har visse mål, visse forudbestemte værktøjer og et generelt ønske om elegance og effektivitet. Der er 101 tegn på et tastatur, hvilket betyder, at vi bliver nødt til at repræsentere 101 i binær som den maksimale værdi. Viser sig 101 i base – 10 er tallet 01100101 i binær. Det er et basiskrav på 7 tilgængelige transistorer, hvis vi vil kortlægge hver nøgle til en bestemt numerisk værdi. Men hvad nu hvis der er andre tegn, vi vil repræsentere? Med 7, alt på, repræsenterer vi kun op til tallet 127 i base-10. Kan lige så godt give os en smule mere at arbejde med.

og således har vi bytes, basisenheden til måling af data, siges at repræsentere mindst et enkelt tegn. Vi kan nu repræsentere værdierne fra 0-255 (00000000-11111111).

da computere kun kan forstå tal, blev American Standard Code for Information Interchange (ASCII) oprettet for at tildele hvert tegn på tastaturet en bestemt numerisk værdi som vist nedenfor:

som et eksempel, her er hvordan du ville repræsentere sætningen”hej verden!”i binær:

  • Tekst: Hej Verden!
  • ASCII-numre: 072 101 108 108 111 032 087 111 114 108 100 033
  • binær: 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

ligesom tekst skal billeder også konverteres til binær. Vi kan repræsentere billeder i binær ved at opdele et billede op i et gitter af billedpunkter og nedbryde hver billedpunktsfarve i en kombination af 3 farver (rød, grøn og blå), typisk benævnt den billedpunkts RGB-værdi. Den maksimale værdi, som hver af disse farver kan have individuelt, er 255, og minimumet er 0, hvilket betyder, at hver farveværdi for hvert punkt kan repræsenteres med 1 byte for i alt 3 byte pr.

som et eksempel kan vi repræsentere skyggen af det grønne punkt, der er vist ovenfor på placering (1,0) i RGB og binær nedenfor:

  • RGB-værdier: (6, 250, 7)
  • binær: 00000110, 11111010, 00000111

endelig kan vi også repræsentere lyddata i binær ved hjælp af “sampling”. Ved at tegne lydbølgerne i en optaget lyd og bemærke værdierne for bølgehøjderne med jævne mellemrum kan vi derefter konvertere disse værdier til binær og derefter genskabe den lydbølge ved hjælp af disse binære værdier på et senere tidspunkt.

for eksempel har lydbølgen ovenfor en decimalværdi på 8 i tidsintervallet 1, hvilket giver den en byte-værdi på 00001000.

fra binær til logik

der er mange forskellige måder at gemme binære data på, herunder stansede kort, magnetiseret tape, optiske diske osv. Alle bruger denne konvention til at repræsentere værdier i et base-2-system. Men at repræsentere verden i binær er kun halvdelen af kampen. Den anden halvdel arbejder på det. Indtast bitvise operatorer.Bitvis operatorer opererer på individuelle bits og er de grundlæggende aritmetiske operationer, som en CPU bruger. Hver bitvis operatør har et sæt forudbestemte regler, der producerer en bestemt output givet to indgange.

bitvise operatorer og deres tilsvarende udgange

Du kan genkende disse værktøjer som dem, der er en del af et system, vi har brugt længe før elektricitet blev opdaget: logik. Mens en bitvis operatør kan virke fremmed, stammer de fra logiske operatører, og ligesom numeriske systemer bruger vi logiske operatører som bitvise operatører, fordi de tjener vores formål effektivt og elegant i betragtning af vores nuværende fysiske begrænsninger.

vores mål er at tage to forskellige værdier repræsenteret af to mulige tegn producere en ny værdi i henhold til et sæt deterministiske regler. Du kan se, hvordan vores system med propositionel logik oversættes godt til beregningslogik nedenfor:

tænk på og operatør i forbindelse med denne sætning: “Bob spiste frokost, og Bob gik i biografen.”Hvis den første erklæring er sand, og den anden erklæring er falsk, så er sætningen falsk.

T& F = F

men hvis den første sætning er sand, og den anden sætning er sand, så er udsagnet sandt.

T & T = t

hvad med Or-operatøren:”Bob spiste frokost eller Bob gik i biografen”. Hvis den første sætning er sand, og den anden sætning er falsk, er sætningen stadig sand.

T v F = T

men hvis begge er falske, er sætningen falsk.

F v F = F

udskift nu T ‘erne og F’ erne med 1 ‘er og 0’ er, og vi har byggestenene til at manipulere binære for at skabe nye strenge af binære og derfor nye repræsentationer af værdier. Vi bruger disse bitvise operatører i logiske porte, elektroniske afbrydere, der bruger denne logik til at producere nye værdier. Forestil dig følgende scenarie:

Du skal tænde den nederste højre LED i en lommeregner for at begynde at vise tallene 0, 1, 3, 4, 5, 6, 7, 8, 9, men ikke nummer 2. Det betyder de binære tal 00, 01, 100, 101 110, 111, og 1001 men ikke 10 nødt til at producere en enkelt på signal (1). For at gøre disse elektriske signaler til et enkelt ON-signal for den LED kan vi kæde 3 eller logiske porte og en ikke logisk port sammen for at sikre, at disse værdier resulterer i enten en 1 eller en 0. Nedenfor kan du se et eksempel på tallet 7 repræsenteret i binært (1110), hvilket resulterer i et enkelt on-signal, hvilket resulterer i, at den nederste højre LED lyser op.

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. Fotoner har for eksempel vist sig at udvise tilsyneladende modstridende adfærd, der repræsenterer flere tilstande på en gang. Multi-state adfærd giver os ekstra værdier at lege med udover den typiske tænd / sluk, som vi generelt får med elektriske signaler. I stedet for at bruge en smule til at gemme data, bruger kvantecomputere kvbits, som enten kan være en 1 eller 0 eller begge på samme tid.



Skriv et svar

Din e-mailadresse vil ikke blive publiceret.