[Powered by Google Translate] NATE Hardison: I videoen på binære, viser vi hvordan du
Representerer settet av hele tall, fra null på opp,
med bare sifrene null og én.
I denne videoen, vi kommer til å bruke binær notasjon til
representerer tekst, brev og slikt, så vel.
>> Hvorfor skulle vi bry å gjøre dette?
Vel, under panseret, en datamaskin egentlig bare
forstår nuller og enere, de binære tall, siden disse
kan representeres lett med elektromagnetiske ting.
>> For eksempel, tenk på datamaskinens minne som en lang
streng med lyspærer, hvor hver enkelt pære
representerer en null hvis den er slått av, og et en
hvis den er slått på.
I stedet for å bruke en haug med lyspærer, noen moderne
minne gjør dette ved hjelp av kondensatorer som holder en lav
lade å representere en null og en høy kostnad
å representere en en.
>> Det finnes andre teknikker så vel.
Uansett, for å lagre noe i minnet, må vi
først konvertere den til noe som kan være faktisk
representert i fysisk maskinvare.
Så la oss tenke på hvordan vi kan representere bokstaver med
binær notasjon.
På engelsk har vi 26 bokstaver i den alfabetiske, A,
>> B, C, D, og ​​så videre, opp til Z. Vi kan tilordne hver en av
disse et nummer, si null gjennom 25, og deretter ved hjelp av
binær notasjon, kan vi representere hvert nummer som
sekvens av nuller og enere.
Det er ikke så ille.
Men det er ikke til å være nok.
Med dette systemet kan vi faktisk ikke skille mellom
store og små bokstaver.
Hvis vi ønsker vår datamaskin for å kunne skille mellom
de to tilfellene, så vi trenger ytterligere 26 tall.
Og hva om perioder, komma og
andre skilletegn?
>> På tastaturet mitt, jeg har 32 av dem, inkludert alle de
spesialtegn som caret og tegnet.
Det er ikke inkludert sifferet tegn, null til ni,
siden vi fortsatt ønsker å være i stand til å skrive inn tall i desimal
notasjon på datamaskinen, selv om datamaskinen bare virkelig
forstår binær notasjon under panseret.
>> Og til slutt, må vi representere et mellomrom så
at vår Space Bar fungerer.
Så å finne ut hvordan å representere tekst på datamaskinen
tar litt mer enn vi kanskje har trodd i utgangspunktet.
I tillegg antar vi da komme opp med vår egen koding
Ordningen å representere tegn som tall.
Men vi bestemmer oss for å kode tegn vil uunngåelig bli
vilkårlig, som vi så tidligere da vi snakket om å bruke
tallene null gjennom 25 for å representere bokstavene A
gjennom Z. Hvorfor ikke bruke 10 til 35, slik at vi kan spare
null til ni for siffer tegn?
>> Det er ingen reell grunn, vi bare valgte det virket
best for oss.
Tilbake på 1960-tallet, var dette et reelt problem.
Ulike datamaskinprodusenter brukte
forskjellige kodingsvalg, og dette gjorde kommunikasjon
mellom forskjellige maskiner en svært vanskelig oppgave.
American National Standards Institute, ANSI,
dannet en komité for å utvikle en felles ordning.
Og i 1963, American Standard Code for Information
Utveksling, mer kjent som ASCII, ble født.
>> ASCII er designet som en syv-bit koding, som
betyr at hvert tegn er representert ved en kombinasjon
av syv nuller og enere.
Med disse to mulige verdier, null eller en, for hver
av de syv biter, er det to til den syvende eller 128
tegn som kan representeres med ASCII
koding ordningen.
Så 128 tegn høres ut som mye, ikke sant?
Vel, husk at det er 26 små bokstaver i
Engelsk, en annen 26 store bokstaver, 10-sifrede karakterer,
32 tegnsetting og spesialtegn
og ett mellomrom karakter.
>> Det setter oss på 95, så vi har en annen 33 tegn som vi
kan representere.
>> Så hva er igjen?
Vel, i de dager utviklingen av ASCII, fjernskriver
maskiner, som er skrivemaskiner som brukes til
sende meldinger over et nettverk, var utbredt.
Og disse maskinene hadde flere tegn som brukes til
kontrollere dem, for eksempel for å fortelle dem når å flytte
ut hodet ned en linje, linjen feed eller ny linje nøkkel,
når du skal flytte til venstre marg, vognretur,
eller bare gå tilbake nøkkelen, og når man skal gå tilbake én plass,
tilbaketasten karakter, og så videre.
>> Disse tegnene er kalt kontrolltegn, og de
utgjør resten av ASCII settet.
Så hvis vi ser på en ASCII-tabellen, ser vi at den første
32 numre, null til 31, er reservert for kontroll
tegn.
Men vi sa at det var 33 kontrolltegn.
Hva er greia?
Vel, tallet null og 127, den første og siste av
ASCII sett, har spesielle bit mønster, alle nuller og alle
seg, henholdsvis.
>> Designerne av ASCII besluttet derfor å
bevare disse tallene for ekstra spesialtegn,
nemlig null karakter og DEL karakter.
Null og DEL var ment for papir tape redigering, som brukte
å være en vanlig måte å lagre data.
Papir tape var bokstavelig talt bare en lang stripe av papir, og på
jevne mellomrom på båndet, vil du slå
hull å lagre data.
Avhengig av bredden av båndet, ville hver kolonne være
stand til å betjene fem, seks, syv, eller åtte biter.
>> Å representere en null bit, du ville gjøre noe for å tape, ville du
bare la et mellomrom.
For en bit, vil du slå et hull.
Null karakter ville bare legge igjen en tom kolonne,
indikerer alle nuller.
Og DEL karakter ville slå en kolonne full av hull
gjennom kassetten.
Som et resultat, kan du bruke DEL tegnet for å slette
informasjon.
Tenk deg å ta en utfylte valg stemmeseddelen og deretter
punching alle unpunched hull.
>> Du ugyldig stemmeseddel fordi det er umulig å
fortelle hva de opprinnelige stemmer var.
Mens DEL tegnet brukes fortsatt er den moderne
Slette tasten kom null tegnet å bli brukt som
avslutningstegnet for C strenger og
noen andre dataformater.
Du kjenner kanskje det som backslash null tegn,
siden det er hvordan vi representerer det skriftlig.
Så tilbake til vårt ASCII-tabellen.
Etter de første 32 kontrolltegn kommer 95
utskrivbare tegn.
>> Det er et par kule design beslutninger verdt
snakker om her.
Første, desimaltall tegn, null til ni,
samsvarer med tallene 48 gjennom 57, som synes
unremarkable før vi ser på tallene 48 gjennom 57
skrevet i binær notasjon.
Hvis vi gjør det, så ser vi at sifferteikn,
null, tilsvarer 0110000, en kart å 0110001, to til
0110010, og så videre.
Se mønsteret?
Hvert siffer karakter er kartlagt til den tilsvarende
tilsvarende i binær notasjon, prefiks 011.
Neste opp, merker du at de store bokstaver starter på 65,
med store bokstaver A, men de små bokstaver
ikke starte før 97.
Så er det 32 ​​plasser i mellom.
Det virker merkelig.
De er bare 26 bokstaver i alfabetet.
>> Hvorfor dele dem opp som dette?
Igjen, hvis vi ser på de binære representasjoner, kan vi
se et mønster.
Store bokstaver A er representert med 1000001, og små bokstaver a er
representert ved 1.100.001.
Store bokstaver B er representert med 1000010, og små b er
representert ved 1.100.010.
Kan du fortelle hva som skjer her?
Bit som er den andre fra venstre, i to til
kvinter for 32ths posisjon, er 0 for alle store
brev, og en for alle de små bokstaver.
>> Det betyr konvertering fra store til små bokstaver, og
vice versa, er et spørsmål om en enkel bit flip.
Så det bringer oss til slutten av ASCII-tabellen.
Kan du tenke deg noe vi har glemt?
Vel, hva med den spanske enye, eller
Gresk eller kyrilliske alfabeter?
Og hva med kinesiske tegn?
Det er mye som er blitt utelatt fra ASCII.
Imidlertid har en annen standard kalt Unicode vært
utviklet for å dekke alle disse
tegn og mange flere.
>> Men det er et emne for en annen tid.
Mitt navn er Nate Hardison.
Dette er CS50.