Het is Allemaal 1s en 0s: Hoe Computers de Fysieke Wereld

Het nummer “12” is niet de waarde 12 in een doosje van de eieren. Het woord “rots” is niet de rots die je buiten tegenkomt. In plaats daarvan zijn het slechts symbolen, gemaakt uit een verzameling van andere symbolen, die specifieke concepten vertegenwoordigen die goed in kaart brengen naar de wereld om ons heen. Het zijn instrumenten die ons de mogelijkheid geven om de wereld, een massa materie, op te splitsen in beheersbare brokken. We gebruiken ze niet omdat ze objectief “waar” zijn, maar omdat ze nuttig zijn bij het bereiken van onze doelen gegeven een reeks fysieke beperkingen.

in wezen is het gebruik van binary door computers niet ingewikkelder dan dat. Gewoon een ander door de mens gemaakt systeem gemaakt om een bepaald doel te bereiken met een bepaalde reeks beperkingen in het achterhoofd.

alvorens na te denken over hoe computers het binaire systeem gebruiken, is het handig om na te denken over waarom we het denary systeem gebruiken. Ons doel is om numerieke waarden te kunnen vertegenwoordigen en deze waarde aan anderen te communiceren. We kunnen ons een systeem voorstellen waarin we een nieuw karakter hadden voor elk denkbaar getal. Bijvoorbeeld, 156 zou eigenlijk een soort kronkelige lijn met een haak op de top, niet te verwarren met het symbool voor 38, die zou worden weergegeven door een cirkel met een lijn over de top. Dat zou de meest efficiënte manier zijn om waarden weer te geven, omdat je maar één personage per keer nodig hebt om zelfs de grootste getallen weer te geven, in plaats van een keten van tekens. Maar het zou niet de meest praktische zijn. Stel je voor dat een 1ste klas leraar test haar studenten op het verschil tussen het karakter vertegenwoordigt 1,589 en het karakter vertegenwoordigt 2,000,478 en alle personages daartussen.

Er is duidelijk een limiet aan het aantal karakters dat we beschikbaar willen hebben in ons systeem van representatie. Dus hoe zit het met het andere uiteinde van het spectrum: een tally systeem met een enkel beschikbaar karakter? Tuurlijk, dat is mogelijk — laat me nu 2.000.478 met behulp van een base-1 systeem. Het is duidelijk dat dit ook onpraktisch is.

plotseling is het base-10-systeem niet het enige beschikbare numerieke systeem, maar een goede pasvorm gezien onze behoefte aan functionaliteit, elegantie en efficiëntie. Met slechts 10 beschikbaar tekens kan ik het vertegenwoordigen van het aantal 2,000,478 gemakkelijk door het vermenigvuldigen van de numerieke waarde is van die kolom door de volgende macht van 10 zoals blijkt uit onderstaande tabel:

  • 2 x 10⁶= 2,000,000
  • 0 x 10⁵= 0
  • 0 x 10⁴= 0
  • 0 x 103= 0
  • 4 x 102 = 400
  • 7 x 101 = 70
  • 8 x 10⁰ = 8

SUM = 2,000,478

Wat een geweldig systeem van waarden vertegenwoordigen. Waarom gebruiken computers dat systeem niet?

van Denary naar binair

elektrische stroom loopt (open/on) of ze zijn niet (closed/off) wat betekent dat we twee waarde tekens beschikbaar voor ons: 1 en 0. Gezien deze beperkingen, kunnen we dezelfde methode gebruiken die we gebruikten om het base-10 systeem te kiezen om een systeem van representatie te vinden dat computers kunnen gebruiken.Met slechts twee staten beschikbaar om verschillende karakters vertegenwoordigen de enige andere alternatief voor binair zou een tally systeem. Maar om de waarde 255 in een tally systeem weer te geven zouden we 255 cijfers nodig hebben. Dat is 255″ op ” transistors om een relatief klein aantal te vertegenwoordigen. Binary heeft slechts 8 nodig om hetzelfde doel te bereiken.

Hier is hoe binair dat doet.

een base 2 systeem werkt op dezelfde manier als het base-10 systeem, maar in plaats van de waarde van elke kolom te vermenigvuldigen met het volgende veelvoud van 2, worden ze vermenigvuldigd met het volgende veelvoud van 2. Het binaire getal 10100 kan bijvoorbeeld worden vertaald naar een basis 10-getal door simpelweg de berekende waarden hieronder bij elkaar op te tellen:

  • 1 x 2⁴ = 16
  • 0 x 23 = 0
  • 1 x 22 = 4
  • 0 x 21 = 0
  • 0 x 2⁰ = 0

van Bits naar Bytes

vanaf hier kunnen we beginnen met het bouwen van een conventie voor het gebruik van dit numerieke systeem om de wereld om ons heen in kaart te brengen op elektrische pulsen van aan en uit. Laten we eerst onze karakters een naam geven: binaire cijfers of kortweg Bits, de kleinste eenheid van gegevens in een computer.

vervolgens bepalen we hoeveel bits er nodig zijn om een niet-numerieke waarde weer te geven, zoals een letter of een speciaal teken. Dit proces is zo gekunsteld als het proces van het kiezen van een numeriek systeem om waarde te vertegenwoordigen. We hebben bepaalde doelen, bepaalde vooraf vastgestelde instrumenten, en een algemeen verlangen naar elegantie en efficiëntie. Er zijn 101 karakters op een toetsenbord, wat betekent dat we 101 in binair moeten vertegenwoordigen als de maximale waarde. Blijkt dat 101 in basis-10 het nummer 01100101 in binair is. Dat is een basisvereiste van 7 beschikbare transistors als we elke sleutel willen toewijzen aan een specifieke numerieke waarde. Maar wat als er andere personages zijn die we willen vertegenwoordigen? Met 7, alles aan, vertegenwoordigen we alleen tot het nummer 127 in basis-10. Je kunt ons net zo goed nog een stukje geven om mee te werken.

en dus hebben we bytes, de basiseenheid voor het meten van gegevens, waarvan gezegd wordt dat ze minimaal een enkel teken vertegenwoordigen. We kunnen nu de waarden van 0-255 (00000000-11111111) vertegenwoordigen.

omdat computers alleen getallen kunnen begrijpen, werd de American Standard Code for Information Interchange (ASCII) ingesteld om elk teken op het toetsenbord een specifieke numerieke waarde toe te kennen zoals hieronder afgebeeld:

als voorbeeld kunt u de uitdrukking “Hello world!”in binair:

  • tekst: Hello World!
  • ASCII-nummers: 072 101 108 108 111 032 087 111 114 108 100 033
  • binair: 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

Zoals tekst, afbeeldingen moeten ook worden omgezet in binaire. We kunnen afbeeldingen in binair weergeven door een afbeelding op te splitsen in een raster van pixels en elke pixelkleur op te splitsen in een combinatie van 3 kleuren (rood, groen en blauw), meestal aangeduid als die pixels RGB-waarde. De maximale waarde die elk van deze kleuren individueel kan hebben is 255 en het minimum is 0, wat betekent dat elke kleurwaarde voor elke pixel kan worden weergegeven door 1 byte voor een totaal van 3 bytes per pixel.

Als voorbeeld we kunnen vertegenwoordigen de schaduw van de groene pixel weergegeven boven op locatie (1,0) in de RGB-en binaire hieronder:

  • RGB-Waarden: (6, 250, 7)
  • Binair: 00000110, 11111010, 00000111

tot slot, kunnen we voorstellen geluid van gegevens in de binaire en het gebruik van “sampling”). Door de geluidsgolven van een opgenomen geluid te grafieken en de waarden van de golfhoogtes op regelmatige intervallen te noteren, kunnen we die waarden omzetten in binair en dan die geluidsgolf opnieuw maken met behulp van die binaire waarden op een later tijdstip.

voor bijvoorbeeld, de geluidsgolf hierboven heeft een decimale waarde van 8 op het tijdsinterval 1, waardoor het een byte waarde van 00001000.

van binair naar Logica

Er zijn veel verschillende manieren om binaire gegevens op te slaan, waaronder ponskaarten, gemagnetiseerde tape, optische schijven, enz. Allen gebruiken deze conventie van het vertegenwoordigen van waarden in een base-2 systeem. Echter, het vertegenwoordigen van de wereld in binaire is slechts de helft van de strijd. De andere helft is ermee bezig. Voer bitwise operators in.

Bitwise operators werken op individuele bits en zijn de fundamentele rekenkundige bewerkingen die een CPU gebruikt. Elke bitwise operator heeft een set van vooraf bepaalde regels die een bepaalde output gegeven twee ingangen produceren.

bitwise operators en hun overeenkomstige uitgangen

u herkent deze tools als degenen die deel uitmaken van een systeem dat we al lang gebruiken voordat elektriciteit werd ontdekt: logica. Hoewel een bitwise operator vreemd lijkt, zijn ze afgeleid van logische operatoren en net als numerieke systemen gebruiken we logische operatoren als bitwise operatoren omdat ze onze doelen efficiënt en elegant dienen gezien onze huidige fysieke beperkingen.

ons doel is om twee verschillende waarden te nemen, vertegenwoordigd door twee mogelijke karakters, die een nieuwe waarde produceren volgens een reeks deterministische regels. U kunt zien hoe ons systeem van propositionele logica vertaalt in computationele logica hieronder:

denk na over de en operator in de context van deze zin: “Bob at lunch en Bob ging naar de film.”Als de eerste verklaring waar is en de tweede verklaring onwaar is, dan is de zin onwaar.

t & F = F

maar als het eerste statement waar is en het tweede statement waar dan is het statement waar.

T & T = T

hoe zit het met de OR operator: “Bob at lunch or Bob ging naar de film”. Als de eerste verklaring waar is en de tweede verklaring onwaar is, is de zin nog steeds waar.

T v F = T

maar als beide onwaar zijn dan is de zin onwaar.

F v F = F

vervang nu de T ’s en F’ S door 1 ’s en 0′ s en we hebben de bouwstenen voor het manipuleren van binair om nieuwe strings van binair en dus nieuwe representaties van waarden te creëren. We gebruiken deze bitwise operators in logische poorten, elektronische schakelaars die deze logica gebruiken om nieuwe waarden te produceren. Stel je het volgende scenario voor:

u moet de LED rechtsonder in een rekenmachine oplichten om de getallen weer te geven 0, 1, 3, 4, 5, 6, 7, 8, en 9 maar niet het nummer 2. Dat betekent dat de binaire getallen 00, 01, 100, 101 110, 111, en 1001 maar niet 10 moeten produceren een enkele op signaal (1). Om die elektrische signalen om te zetten in een enkel ON signaal voor die LED kunnen we ketting 3 of logische poorten en een niet logische poort samen om ervoor te zorgen dat deze waarden resulteren in ofwel een 1 of een 0. Hieronder ziet u een voorbeeld van het getal 7 weergegeven in binair (1110) wat resulteert in een enkel ON signaal, wat resulteert in de LED-verlichting rechtsonder.

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. De fotonen, bijvoorbeeld, zijn getoond om schijnbaar tegenstrijdig gedrag tentoon te stellen, die meerdere staten tegelijk vertegenwoordigen. Het multi-state gedrag geeft ons extra waarden om mee te spelen naast de typische aan/uit die we over het algemeen krijgen met elektrische signalen. In plaats van een bit te gebruiken om gegevens op te slaan, gebruiken quantumcomputers qubits, die een 1 of 0 kunnen zijn of beide tegelijk.



Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.