David J Morgan på Flickr
binära tal, baserat på 1s och 0s, återspeglar den praktiska kärnan i datorhårdvara: el är antingen på eller av. Lär dig att skriva i binära tal, och (inte så hemligt) koden för att omvandla engelska bokstäver till binära tal och tillbaka igen.
När är bokstaven A inte bokstaven A? Tja, datorer använder inte bokstaven A. de använder åtta tecken binärnummer 01000001 för att representera A., Denna binära tal handledning beskriver vad binära tal är och hur man beräknar dem.
datorer transporterar, beräknar och översätter binära tal eftersom datorhårdvarukretsar endast har två elektriska tillstånd, på eller av. Dessa två stater kan representeras som noll (av) eller en (på). Alla bokstäver i alfabetet, siffror och symboler konverteras till åtta tecken binära tal som du arbetar med dem i programvara på din dator.
hur du skapar och översätter binära tal är ett bra sätt att lära dig hur datorer behandlar data på lägsta nivå, i sina hårdvarukretsar.,
jag tillhandahåller också ett gratis Excel-kalkylblad länkat längst ner i den här artikeln för att hjälpa dig att visualisera och beräkna binära tal.
den hemliga formeln
för att representera bokstaven A som 01000001, datorn (och du, att följa med) Â behöver flera grundläggande verktyg. Ett verktyg är en ASCII konvertering diagram. Utan att dyka in i för mycket teknisk detalj kartlägger ASCII-diagrammet ett unikt nummer mellan 1 och 255 till alla bokstäver i alfabetet aktiverade (A-Z) och gemener (A-z), samt Siffror (0-9), mellanslag och andra specialtecken., Det unika ASCII-numret som kartlägger varje tecken, till exempel bokstaven A, används för att beräkna ett unikt åtta tecken binärt nummer, en kombination av sådana och nollor som 01000001.
det är i princip en tvåstegshemlig kod. Det första steget är att ta det unika ASCII-numret för ett brev. Det andra steget är att skapa ett unikt åtta tecken binärt nummer, en kombination av ettor och nollor för att representera ASCII-numret.,
och, naturligtvis, går från åtta tecken kombination av ettor och nollor till bokstaven eller tecknet vänder denna process: först vrid binärnumret till ett tal mellan 1 och 255 sedan använda numret för att slå upp bokstaven i ASCII diagrammet.
hur man skapar binära tal
binära tal är åtta tecken i längd där varje tecken är antingen en 1 eller 0. Placeringen av varje 1 anger värdet av den positionen, som används för att beräkna det totala värdet av det binära talet., Varje position för var och en av de åtta tecknen representerar ett fast talvärde, som visas nedan.
om du läser dessa standardvärden siffror från botten till toppen, kan du berätta hur varje nummer omedelbart ovanför beräknas? De fördubblas. Så binära tal börjar på botten med den första positionen lika med 1. Den andra positionen från botten har ett värde 2, den tredje positionen 4 och så vidare.,
om du lägger till alla dessa nummer (1+2+4+8+16+32+64+128), kan du gissa vilket nummer du får? 255, det högsta antalet som används i ASCII-tabellen. Det finns en perfekt kartläggning mellan alla möjliga tal 1 till 255 i ASCII-tabellen och de beräknade värdena för alla möjliga åtta tecken binära tal.
för att beräkna talvärdet för ett binärt tal, Lägg till värdet för varje position för alla 1s i åtta teckennummer. Numret 01000001 konverteras till exempel till 64 + 1 eller 65., De i detta binära tal är i första och sjunde positionerna, räknar från botten till toppen, eller läser höger till vänster. Den första positionen har ett tilldelat värde på 1 medan den sjunde positionen har ett tilldelat värde på 64.
Låt oss Konvertera en bokstav till ett binärt tal
Nu när du vet den hemliga formeln för att konvertera bokstäver till unika ASCII-nummer till binära tal, och hur man skapar binära tal, Låt oss göra hela processen steg för steg. Låt oss börja med bokstaven C.,
först måste vi använda ett ASCII-diagram som det här nedan för att slå upp det unika numret som tilldelats stor bokstav C. Det unika decimaltalet som ska användas är 67.
Decimal | tecken | Decimal | tecken | decimal | tecken | |
---|---|---|---|---|---|---|
32 | utrymme | 64 | @ | 96 | ` | |
33 | !, | |||||
39 | ‘ | 71 | G | 103 | g | |
40 | ( | 72 | H | 104 | h | |
41 | ) | 73 | I | 105 | i | |
42 | * | 74 | J | 106 | j | |
43 | + | 75 | K | 107 | k | |
44 | , | 76 | L | 108 | l | |
45 | – | 77 | M | 109 | m | |
46 | .,td> | 6 | 86 | V | 118 | v |
55 | 7 | 87 | W | 119 | w | |
56 | 8 | 88 | X | 120 | x | |
57 | 9 | 89 | Y | 121 | y | |
58 | : | 90 | Z | 122 | z | |
59 | ; | 91 | 125 | } | ||
62 | > | 94 | ^ | 126 | ~ | |
63 | ?, | 95 | _ | 127 | DEL |
för att konvertera numret för C, 67, till ett binärt tal:
Kom ihåg hur binära tal läses ned till toppen, första positionen och standardvärdet till topposition och standardvärde, med var och en av de åtta teckenpositionerna tilldelas ett unikt nummervärde? Med diagrammet nedan, vilken kombination av värden skulle motsvara 67?,
Du har rätt om du sa att standardvärdena 1 plus 2 plus 64 skulle motsvara 67, ASCII-numret för bokstaven C. Så låt oss ändra den första, andra och sjunde positionen nollor till dem, räknat från höger till höger till vänster.vänster., Det binära numret är för bokstaven C är:
kan du avkoda detta binära nummer? Lägg upp 1s att få 64+16+4 eller 84. Slå upp decimaltalet 84 i ASCII-diagrammet för att hitta bokstaven nedan:
om du konverterade detta binärnummer till bokstaven T har du rätt., bokstaven A som ett binärt tal för att representera ASCII-decimaltalet för A, vilket är 65:
om vi kombinerar de binära tal Vi har tittat på hittills kan vi stava katt:
01000011 01000001 01010100
bonus: pseudo-kod för att designa en binär talomvandlare
med en förståelse för hur bokstäver och siffror konverteras till binära tal, och tillbaka, låt oss titta på hur vi kan skapa ett program för att göra dessa omvandlingar i farten., Ansökan har inget verkligt värde. Men det ger en chans att diskutera hur en process kan omvandlas till programvara.
istället för faktisk kod skriver vi dock upp en serie uttalanden eller pseudo-kod.
låt oss ta ordet katt att börja. Vilken process behöver vi konvertera dessa bokstäver automatiskt till binära tal? Här är en möjlig uppsättning steg som vi kunde koda:
- bryta ordet i enskilda bokstäver.
- för varje bokstav, slå upp ASCII-nummervärdet mappat till bokstaven.
- för varje ASCII-nummervärde, konvertera till ett binärt tal.,
- för varje binärt nummer, spara det binära talvärdet. Om det är det första binära numret, skapa det ursprungliga binära talvärdet; om ett binärt talvärde finns, Lägg till det nya binära numret till slutet av värdet.
Tänk om vi hoppade över det sista steget: Vad skulle vara resultatet av dessa steg? Vi skulle bara ha det sista binära numret, för den nedre bokstaven t i cat. Det är viktigt att vi fångar varje binärt nummer när de skapas.
andra observationer om denna pseudo-kodprocess? Vi måste skilja mellan stora bokstäver och små bokstäver, eller hur?, Annars kan vår binära talkonvertering översätta från binärt nummer till ASCII-bokstäver som katt eller katt eller katt. Vår sökning för att matcha bokstäver till ASCII-bordet kan ta fel nummer.
Bonus Bonus: ett sista pussel
kan du avkoda frasen i denna uppsättning binära tal? Kom ihåg att dessa är åtta tecken block av 1: or och 0: or.
01000011 01101111 01100100 01100101 01101001 01110011 01010000 01101111 01100101 01110100 01110010 01111001
Här är ett ganska enkelt sätt att konvertera alla brev i ett binärt tal., Ta en räknare, hitta ASCII-decimalvärdet för brevet, från diagrammet ovan, titta sedan på binärnummerdiagrammet för närmaste värde till decimalvärdet. Subtrahera närmaste antal standardvärde i binärdiagrammet för att få ett restvärde. Leta efter närmaste binära standardvärde för resten. Upprepa tills du får slut på binära värden.
om du är smart kommer du också att notera summan av värdena under något av de åtta standardvärdena är lika med ett mindre än värdet: så under binärvärdet 4 är värdena 2 och 1 som motsvarar 3., Under det binära värdet av 8 är 4, 2 och 1 som är lika med 7. Detta kan också hjälpa konvertera bokstäver till binära tal. Om resten är 7, till exempel, då vet du att sätta en 1 på 4, 2, och 1 positioner för att skapa den delen av din binära tal.
för att konvertera binära tal till bokstäver, ta bara ett papper och en penna eller penna och lägg upp de binära värdena för alla 1s. slå sedan upp ditt totala tal som en ASCII-decimal i diagrammet ovan.,
här är en ledtråd för att avgöra om du har löst binära tal ovan korrekt: jag huvudämne i amerikansk poesi i college och älskar den gamla tagline som används för WordPress publishing programvara.