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