Datorer använder siffror. Människor använder bokstäver och symboler. Vi behöver en brygga. ASCII är den bryggan. ASCII omvandlar varje bokstav eller symbol till ett nummer. Datorn lagrar numret. När vi läser visar datorn bokstaven igen. Så här fungerar text i många filer och appar.
En dator arbetar med elektricitet. Den ser två tillstånd. På och Av. Vi kallar dessa tillstånd bitar . En bit är en 0 eller en 1. Många bitar tillsammans bildar större tal. Åtta bitar bildar en byte . Med bitar kan vi räkna. Med räkning kan vi namnge saker. ASCII använder räkning för att namnge bokstäver och symboler.
En bit ger två val. Två bitar ger fyra val. I matematik visas denna idé som \(\;2^n\) . För \(n=7\) får vi \(2^7 = 128\) val. För \(n=8\) får vi \(2^8 = 256\) val. ASCII använder 7 bitar. Det ger 128 namngivna objekt. Senare skapade människor 8-bitarsmängder med 256 objekt. Dessa kallas utökad ASCII .
ASCII står för American Standard Code for Information Interchange . Det började på 1960-talet. Det skapades för tidiga skrivare, teletyper och datorer. Det ger varje bokstav, siffra, mellanslag och vissa symboler ett nummer. Det ger också specialnummer till handlingar som ny rad . Den första versionen använde 7 bitar, så den hade siffror från 0 till 127.
Lägg märke till något snyggt. Små bokstäver är 32 fler än deras stora bokstäver. Till exempel, \(\;97 - 65 = 32\) . Så 'a' är 32 fler än 'A'. 'b' är 32 fler än 'B', och så vidare. Detta mönster gör vissa datoruppgifter enkla.
När du trycker på Enter-tangenten kan din dator skicka LF, CR eller båda, beroende på systemet. Många internetverktyg använder LF. Vissa äldre system använde CR och LF tillsammans.
Vi kan skriva tal på olika sätt. Decimalt är det vanliga sättet vi räknar på, med siffrorna 0 till 9. Binärt använder endast 0 och 1. Hexadecimalt använder siffrorna 0 till 9 och A till F.
Hur skapar en binär funktion 65 för 'A'? Titta på bitarna i 01000001. Den vänstra biten är för 128. Sedan 64, 32, 16, 8, 4, 2, 1. Endast 64 och 1 är aktiverade. Så \(01000001_{(2)} = 0\times128 + 1\times64 + 0\times32 + 0\times16 + 0\times8 + 0\times4 + 0\times2 + 1\times1 = 65\) .
Tryck på en tangent. Tangentbordet skickar en kod till datorn. Systemet omvandlar den till ett teckennummer. För många tangenter är det numret ASCII-numret. Appen lagrar numret i minnet. När texten visas slår den upp numret och ritar bokstaven. När du sparar sparas siffrorna i filen.
Tänk på meddelandet Hej!. Bokstäverna är H, i och !. Deras ASCII-nummer är 72, 105 och 33. I binärt format är de 01001000, 01101001 och 00100001. Nätverket skickar dessa bitar. Den andra sidan läser bitarna. Den ser siffrorna. Den visar H, i och ! igen. Det är så enkla textmeddelanden rör sig.
Folk ville ha fler symboler. De ville ha bokstäver som é, ñ och ø. De ville ha penningtecken som €. 7-bitarsmängden hade bara 128 symboler. Så folk använde 8 bitar. Med 8 bitar får vi \(2^8 = 256\) symboler. Den övre halvan, från 128 till 255, användes för extra bokstäver och symboler. Men det fanns ett problem. Olika grupper valde olika siffror för dessa extra bokstäver. Dessa val kallas teckentabeller .
Eftersom teckentabeller skiljer sig åt kan samma nummer visa en annan symbol på en annan dator. Denna förväxling kallas mojibake . Det ser ut som konstiga tecken. Det är en av anledningarna till att världen övergick till Unicode.
Unicode är en stor standard som kan visa många språk, matematiska symboler och emojis. Den har plats för mer än en miljon symboler. Det finns många sätt att lagra Unicode. Ett populärt sätt är UTF-8 .
Med endast ASCII-text använder varje tecken en byte. Så ordet katt använder 3 byte. Frasen hej mamma har 6 tecken inklusive mellanslag, så den använder 6 byte. Enkelt uttryckt \(\textrm{ASCII-byte} = \textrm{antal tecken}\) .
Datorer sorterar ofta strängar efter deras teckennummer. ASCII-ordning grupperar saker på ett visst sätt.
Det betyder att Zoo kommer före apple om vi jämför enkla ASCII-värden. Sorteringen sker efter siffror, inte efter hur ord låter.
Lägg märke till att et-tecknet är &. Dess ASCII-nummer är 38. Plustecknet + är 43. Minustecknet - är 45.
Människor gör bilder med bara tecken. Detta kallas ASCII-konst . Här är ett litet ansikte gjort med ASCII-tecken.
:-) Enkelt leende
(^_^) Vänligt ansikte
o_O Förvånad
Varje ansikte är bara tecken som kolon, bindestreck och parenteser. Inga färger eller former. Bara text.
ASCII växte fram från teletyper och tidiga datorer. År 1963 enades man om en första version. Den hjälpte många olika maskiner att kommunicera med varandra. Med en gemensam kod betydde en bokstav som A samma nummer överallt. Detta gjorde det lättare att skicka meddelanden och skriva ut text.
ASCII har bara 128 objekt. Det räcker inte för alla språk. Den kan inte visa kinesiska, hindi, arabiska eller många andra skrifttyper. Den kan inte visa emojis. Den kan inte heller visa många matematiska och musikaliska symboler. För dessa använder vi Unicode. Unicode kan visa många skrifttyper och symboler. UTF-8 är ett sätt att lagra dem. Den goda nyheten är att all ASCII-text fungerar inuti UTF-8. Så moderna system kan enkelt läsa gammal ASCII.
De flesta appar förväntar sig UTF-8. Men när en fil bara innehåller ASCII-bokstäver och symboler ser den likadan ut under UTF-8. Programmerare gillar detta eftersom det förenklar saker och ting. Webbsidor, API:er och många verktyg använder UTF-8, vilket inkluderar ASCII utan ändringar.
ASCII är en 7-bitarsmängd. Det betyder upp till \(2^7 = 128\) olika tecken. En utökad mängd med 8 bitar har \(2^8 = 256\) objekt. Om din text bara har ASCII-tecken, och den har \(n\) tecken, använder den \(n\) byte. I ett litet meddelande som OK , \(n = 2\) . Så den använder 2 byte när den lagras som ASCII eller UTF-8.
Vissa ASCII-element utför åtgärder men skrivs inte ut. Mellanslag skriver ut tomma rutor. Men LF och CR flyttar markören. TAB hoppar. När vi öppnar en fil i en speciell editor kan den visa LF som \n. Den symbolen är inte en del av själva ASCII. Det är ett sätt som editorn visar radbrytningen för dig.
Tänk dig en etikettskrivare som skriver ut namn. Den läser namnet som tecken. Den omvandlar varje tecken till ASCII-nummer. Den lagrar dessa siffror i minnet. Den skriver ut bokstäverna genom att slå upp hur man ritar varje nummer. Om den uppfyller LF (10) går den vidare till nästa rad innan den skriver ut fler.
Titta på tecknet '!' igen. Vi kan skriva dess kod på tre sätt. Decimal: 33. Binär: 00100001. Hex: 21. I matematisk form \(\;33_{(10)} = 00100001_{(2)} = 21_{(16)}\) . Varje form har samma värde. Appar väljer den form de behöver. Folk läser ofta decimal. Datorer gillar binär. Hex är ett kort sätt för folk att läsa binära tal.
ASCII är litet och tydligt. Det skapades tidigt. Många verktyg och protokoll byggdes på det. Eftersom de första 128 Unicode-koderna matchar ASCII fungerar planen fortfarande idag. Det är därför du kan öppna mycket gamla textfiler på en ny telefon eller bärbar dator och se samma bokstäver.
Öppna en fil med texten Hello . Bytena är ASCII-talen 72 101 108 108 111. I binärt format är de 01001000 01100101 01101100 01101100 01101111. Appen läser varje siffra och ritar Hello på skärmen. Om nästa siffra är 10, flyttas den till en ny rad innan mer text ritas. Så här enkel och stabil är processen.
Tänk på talet 10. I binärt tecken är det 00001010. I decimalt tecken är det tio. I ASCII är 10 LF, radmatningen. Detta visar hur samma tal kan visas på olika sätt. Betydelsen kommer från hur vi använder talet. Om vi säger att det är en teckenkod, då betyder 10 LF. Om vi säger att det bara är ett antal äpplen, då är det tio äpplen. Sammanhang spelar roll.
Vi skickar ordet Sol från en enhet till en annan. Koderna är 'S' 83, 'u' 117, 'n' 110. I binärt tal är 83 01010011, 117 är 01110101, 110 är 01101110. Bitarna färdas som På- och Av-signaler. Den andra enheten omvandlar bitar tillbaka till siffror. Sedan omvandlar den siffror till bokstäver. Den visar ordet Sol . Om nästa kod är 32 är det ett mellanslag. Om nästa är 33 är det '!'. Reglerna förblir desamma varje gång. Det är kraften i en delad kod.