[Powered by Google Translate] NATE Hardison: I videon på binära visar vi hur representerar en uppsättning heltal, från noll på upp, använda endast siffrorna noll och ett. I den här videon kommer vi att använda binär notation till representerar text, bokstäver och sådant, liksom. Varför skulle vi bry sig om att göra detta? Tja, under huven, en dator egentligen bara förstår nollor och ettor, de binära siffror, eftersom dessa kan representeras enkelt med elektromagnetiska saker. Till exempel, tänk på datorns minne som en lång sträng av glödlampor, varvid varje enskild lampa representerar en noll om den är avstängd, och en om det är aktiverat. Istället för att använda en massa glödlampor, vissa moderna minne innebär detta att använda kondensatorer som håller en låg ut för att representera en nolla och en hög laddning att representera en. Det finns andra tekniker också. Hur som helst, för att lagra något i minnet, måste vi först konvertera den till något som kan vara faktiskt representerade i den fysiska hårdvaran. Så låt oss fundera över hur vi kan representera bokstäver med binär notation. På engelska har vi 26 bokstäver i alfabetisk, A, B, C, D, och så vidare, upp till Z. Vi kan tilldela var och en av dessa ett antal, säg noll till 25, och sedan använda binär notation kan vi representera varje nummer som sekvens av nollor och ettor. Det är inte så illa. Men det är kommer inte att vara tillräckligt. Med detta system, kan vi faktiskt inte skilja mellan stora och små bokstäver. Om vi ​​vill att vår dator för att kunna skilja mellan de två fallen, då behöver vi ytterligare 26 nummer. Och hur är det med perioder, kommatecken och andra skiljetecken? På mitt tangentbord, jag har 32 av dem, inklusive alla de specialtecken såsom cirkumflex och et-tecknet. Det är inte med sifferknapparna tecken, noll till nio, eftersom vi vill fortfarande kunna skriva siffror i decimalform notation på datorn, även om datorn egentligen bara förstår binär notation under huven. Och slutligen, vi måste representera ett blanksteg så att vår Mellanslag fungerar. Så räkna ut hur att representera text på datorn tar lite mer än vi kanske trott från början. Dessutom antar vi kommer sedan upp med vår egen kodning system för att representera tecken som tal. Men vi väljer att koda tecken oundvikligen kommer att godtyckliga, som vi såg tidigare när vi pratade om hur du använder nummer noll till 25 för att representera bokstäverna A genom Z. Varför inte använda 10 till 35, så att vi kan spara noll till nio för siffran tecken? Det finns ingen verklig anledning valde vi bara vad verkade bäst för oss. Tillbaka i början av 1960-talet var detta ett verkligt problem. Olika datortillverkare använde olika kodningsscheman och detta gjorde kommunikation mellan olika maskiner en mycket svår uppgift. American National Standards Institute, ANSI, bildade en kommitté för att utveckla ett gemensamt system. Och 1963, American Standard Code for Information Interchange, mer känd som ASCII, föddes. ASCII var utformad som en sju-bitars kodning, vilket betyder att varje tecken representeras av en kombination av sju nollor och ettor. Med dessa två möjliga värden, noll eller ett, för varje av de sju bitarna, finns det två till sjunde eller 128 tecken som kan representeras med ASCII kodningsschema. Så 128 tecken låter som en hel del, eller hur? Tja, kom ihåg att det finns 26 små bokstäver i Engelska, ytterligare 26 versaler, 10 siffror tecken, 32 interpunktion och specialtecken och en mellanslag. Det sätter oss på 95, så vi har en annan 33 tecken som vi kan representera. Så vad är kvar? Jo, i dagarna av utvecklingen av ASCII teletype maskiner, som är skrivmaskiner som används för att skicka meddelanden över ett nätverk, var utbredd. Och dessa maskiner hade ytterligare tecken som används för att kontrollera dem, till exempel för att berätta för dem när du ska flytta ut huvudet ner en rad, linje foder eller ny rad nyckel, när man ska gå till vänster marginal, vagnretur, eller helt enkelt returnera nyckeln och när du ska gå tillbaka ett steg, de backsteg karaktär, och så vidare. Dessa tecken kallas styrtecken, och de utgör resten av ASCII-uppsättningen. Så om vi tittar på en ASCII tabell ser vi att den första 32 nummer, noll till 31, är reserverade för styrning tecken. Men vi sa bara att det fanns 33 styrtecken. Vad är det? Tja, siffran noll och 127, den första och sista av ASCII uppsättning har speciella bitmönster, nollor och alla sådana, respektive. Formgivarna av ASCII beslöt därför att bevara dessa siffror för extra specialtecken, nämligen noll karaktär och DEL karaktär. Null och DEL var avsedda för papperstejp redigering, som använde att vara ett vanligt sätt att lagra data. Papperstejp var bokstavligen bara en lång pappersremsa, och jämna mellanrum på bandet, skulle du punsch hål för att lagra data. Beroende på bredden av bandet, skulle varje kolumn vara kunna rymma fem, sex, sju, eller åtta bitar. Att representera en nolla bit, skulle du göra något för att bandet, skulle du bara lämna ett tomt utrymme. För en en bit, skulle du slå hål. Null karaktär skulle bara lämna en tom kolumn, indikerar alla nollor. Och DEL karaktär skulle slå en kolumn full av hål genom ditt band. Som ett resultat kan du använda DEL karaktär att radera informationen. Tänk dig att ta en ifyllda valet omröstning och sedan stansning alla ohålat hålen. Du ogiltig röstsedeln eftersom det är omöjligt att berätta vad de ursprungliga rösterna var. Medan DEL tecknet används fortfarande är den moderna Delete-tangenten kom null tecken som ska användas som uppsägning karaktär för C strängar och några andra dataformat. Du kanske känner det som omvänt snedstreck noll karaktär, eftersom det är hur vi representerar det skriftligt. Så tillbaka till våra ASCII tabell. Efter de första 32 styrtecknen kommit 95 skrivbara tecken. Det finns ett par coola designbeslut värda talar om här. Först de decimalsiffra tecken, noll till nio, motsvarar numren 48 till 57, vilket verkar utmärker tills vi ser på siffrorna 48 till 57 skriven i binär notation. Om vi ​​gör det, då ser vi att siffran karaktär, noll, motsvarar 0110000, en kartor till 0110001, två till 0110010, och så vidare. Se mönstret? Varje siffra tecken är mappad till sin motsvarande motsvarande i binär notation, prefixet 011. Nästa upp, märker du att versaler börjar på 65, med versaler A, men de gemener börjar inte förrän 97. Så det finns 32 platser i mellan. Det verkar konstigt. De är bara 26 bokstäver i alfabetet. Varför dela upp dem så här? Återigen, om vi tittar på de binära representationer, kan vi se ett mönster. Versaler A representeras av 1000001 och gemener a är representeras av 1.100.001. Versaler B representeras av 1000010 och gemener b är representeras av 1.100.010. Kan du berätta vad som händer här? Den bit som är den andra från vänster, i två till femtedelar för 32ths position är 0 för alla versaler bokstäver, och 1 för alla gemener. Det innebär konvertering från versaler till gemener och vice versa, är en fråga om en enkel bit flip. Så det leder oss till slutet av ASCII-tabellen. Kan du komma på något vi har glömt? Nå, hur är det med den spanska enye eller Grekiska eller bokstäver kyrilliska? Och hur kinesiska tecken? Det finns en hel del som blivit kvar från ASCII. Emellertid har en annan standard som kallas Unicode varit utvecklats för att täcka alla dessa tecken och många fler. Men det är ett ämne för en annan tid. Mitt namn är Nate Hardison. Detta är CS50.