Vad menar vi när vi säger att datorer använder nollor och enor?

Bästa svaret

Mycket bra svar redan här. För att försöka lägga till lite mer till vad som redan har sagts:

En dator använder samma idé (dvs massor av på / av-signaler) för att lagra / producera resultat. Således ”tänker” en dator i PÅ eller AV, vi använder bara representationen av 1 för dess PÅ och 0 för dess AV …

För det mesta gör det alla dessa ”snygga” saker genom mycket förenklade matematik – med bara siffror. Men det använder siffror på ett annat sätt som du eller jag. Vi brukar tänka på siffror som 0, 1, 2, 3, … 9, 10, etc. En dator har inte det privilegiet, den kan bara ”tänka” på 0 och 1. Men det betyder fortfarande att det kan göra samma matematik som vi kan med våra 10 (eller andra) siffror. Anledningen är att på samma sätt som vi bestämmer oss för att använda en annan siffra ”beslutar” datorn att använda mer. Dvs vad är efter 9? 10 naturligtvis upprepar vi bara ett mönster är vi inte?

Detta kallas basen för nummersystemet vi använder. T.ex. den normala som människor använder är bas 10 (eller decimal) och vad datorn använder är binär (eller bas 2). Så när en dator räknar räknas den så här: 0 => 0 1 => 1 2 => 10 3 => 11 4 => 100 5 => 101 … 9 => 1001 10 => 1010 11 => 1011 etc .

Det finns också andra sätt, ibland använder vi dem för att matcha datorns metod lite mer exakt. Till exempel kan vi räkna i hexadecimal – bas 16 istället för den vanliga basen 10. I det här fallet har 6 extra siffror för att lägga till de möjliga siffrorna. Vanligtvis använder vi dessa (vi kan också gå med bas 8 oktala, eller vad vi än väljer) eftersom de matchar de krafter som 2 som ett binärt system använder – dvs. exakt på krafterna för två (hoppar över några, men faller aldrig på något som inte är en kraft av 2 som bas 10-systemet gör). Den största välsignelsen om detta är att antalet siffror som krävs i hex är proportionell mot antalet siffror i soptunnan (i det här fallet mappar varje siffra i hex på 4 siffror i soptunnan – mycket lättare att konvertera till / från). Om vi ​​använder hexadecimal (bas 16) skulle vi räkna så här: Dec => Hex => Bin .. . 9 => 9 => 1001 10 => A => 1010 11 => B => 1011 … 15 => F => 1111 16 => 10 => 10000 17 => 11 => 10001 … 31 => 1F => 11111 32 => 20 => 100000 33 => 21 => 100001 …

Från detta görs alla former av matematik på ungefär samma sätt som du lärde dig matematik. T.ex. lägga till två nummer:

\_\_dec => hex => bin

25 19 11001

+ 16 10 10000

----------------------

31 29 01001

+ 10 100000 (carry)

----------------------

41 29 101001

Samma typ av saker gäller för alla matematik, multiplikation, division, subtraktion etc. Och därifrån sträcker det sig också till ytterligare saker som rötter, exponenter, trig, etc .

Nu är allt annat som visas av datorn bara olika sätt att representera dessa siffror. T.ex. texten på den här sidan är bara en massa siffror, som alla får en specifik ”förståelse” genom att ett specifikt nummer representerar ett specifikt tecken. En av de viktigaste metoderna för kodning av bokstäver är ASCII-sekvensen ( ASCII-teckenkoder och html-, oktal-, hex- och decimaldiagramkonvertering ). Genom att bokstaven A ges siffran 65 (i decimal), alltså 41 (hex) och 1000001 (bin).

Men vanligtvis behöver sådana tal delas, annars vet vi inte var en startar och en annan stannar – datorer har inte ens privilegiet att använda mellanslag. För att komma runt detta använder datorn inställda grupper med binära siffror. Vanligtvis i grupper om 8 (kallade byte) eftersom detta i sig är en kraft på 2 och ger en ganska anständig mängd möjliga tecken (256 möjligheter). Om siffran är låg, fylls den övre delen bara med 0s. Så faktiskt skulle ett A sparas i en dator som 01000001, vilket fyller den första icke-nödvändiga siffran med en 0. Det finns också andra sätt, t.ex. UTF8 säger i princip: ”Om den första biten är en 1, så finns det ytterligare 8 siffror som följer den här, som sedan utökar koden till att inkludera ännu fler möjligheter”.

Och slutligen, saker som grafik / bilder / 3d / ljud / etc. kodas alla bara genom att ge varje variant ett annat nummer att visa, t.ex. att färgerna som visas på den här skärmen består av små prickar, som alla får en specifik färg (vanligtvis kodad i något som RGB – Röd / Grön / blå intensitet som ett tal från 0 till (säg) 255 för varje).

Det blir ännu viktigare när vi börjar titta på de åtgärder en dator kan göra. Dessa är också bara ”siffror” kodad för att betyda olika ”saker måste hända”. Exempelvis kan datorns processor ha en instruktionsuppsättning (dvs. en ekodering av olika möjliga åtgärder) där en av dem är instruktionen att lägga till siffror tillsammans, en annan att subtrahera, en annan till byt dem från 1s till 0s och visa versa, etc. etc.Det här är vad ”programvara” består av – på / av-signalerna som vi ser som analoga med 1 och 0, i mönster som passar de åtgärder som programvaran behöver att processorn ska vidta.

Men eftersom allt börjar från det on / off, vilket tolkas som antingen 1 eller 0 … en dator använder bara 1s och 0s. Det gör det bara genom att titta på mönstren 1s och 0s som följer varandra. Mönstret är vad som betyder ”1” och ”0”, på egen hand har de mycket begränsad betydelse.

Svar

Det betyder vanligtvis att vi inte förstår datorer.

Seriöst.

Om du vill se varför det är förvirrande, leta inte längre än strömbrytaren på din dator. Ser du den roliga trident symbolen? Har du någonsin undrat vad det betyder?

Att ”sa 1 ovanpå en 0.

Varför?

Tillbaka på de tidigaste IBM-datorerna fanns det en stor, klumpig vippomkopplare märkt ungefär som:

1 – På 0 – Av

Med tiden blev omkopplarna mindre och blev så småningom knappar, vilket betyder att allt ordspråk var meningslöst, så vi fick symbol som alla vet men ingen förstår.

Det är i stort sett allt du behöver veta om den här frågan: Datormänniskor är ganska dumma eller åtminstone lat.

Men det ” är inte tillfredsställande, misstänker jag. den interna omkopplaren.

Men det är mer genomgripande än så här. Om du krymper dig inuti datorn har mikrochips transistorer i sig, som är (snälla berättar inte för några elektrotekniker som jag sa det här) som små brytare. De släpper igenom strömmen (på) eller de tänker inte (av ), och de är ordnade för att bearbeta data. Innan vi hade transistorer allmänt tillgängliga använde vi reläer för samma ändamål, brytare för att spara ett tillstånd, på samma sätt som din ljusbrytare ”kommer ihåg” att du ville på.

När vi ”pratar om data som bearbetas, vill vi läsa av transistorernas på / av-tillstånd (typ; jag förenklar här, men om du vill slå upp hur datorminne fungerar, jag väntar här), vi vill ha något mer kompakt än ”på, på, av, på, på, av, av, av.” Jag touch-typ och gjorde ungefär ett halvt dussin misstag att skriva det, även utan något specifikt värde i åtanke, om du vill förstå varför det inte skulle flyga. Därför skriver vi dem faktiskt som nollor och sådana, som 11011000.

Men även det är tråkigt, så vi kan gruppera bitar (binära siffror) i grupper om tre, vilka är oktala (bas-8) -tal, 330 i detta fall. Det är förvirrande, så mer troligt använder vi hexadecimal (bas-16) -tal, vilket motsvarar fyra bitar, D8 här.

Att använda befogenheter av två är användbart, eftersom det betyder (om vi är på en primitiv dator där detta är livskraftigt) att vi kan titta på signalerna på linjerna i en grupp. Så representationerna ovan är praktiska, medan 216 (decimalrepresentationen) inte skulle vara till stor nytta för den person som hanterar datorn.

Men för att komma tillbaka till punkten, gör inte själva datorn det använda allt annat än on-off-tillstånd, som vi tolkar som nollor och enor, hexadecimala siffror, siffror, tecken (bokstäver, siffror, symboler och mellanslag), instruktioner och valfritt antal andra saker. Datorn har dock ingen aning om denna tolkning.

Nåväl, du kan hävda att instruktionerna faktiskt är förståda, eftersom on-off-staterna faktiskt tvingar fram ett beslut om vad de ska göra nästa. Men definitivt inte resten.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *