[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.