1 00:00:07,220 --> 00:00:09,290 [Powered by Google Translate] Nate Hardison: În video de pe binar, vom arăta cum să 2 00:00:09,290 --> 00:00:12,540 reprezintă un set de numere întregi, de la zero, pe sus, 3 00:00:12,540 --> 00:00:15,110 folosind doar cifre zero și unu. 4 00:00:15,110 --> 00:00:17,890 În acest videoclip, vom folosi notația binar pentru a 5 00:00:17,890 --> 00:00:21,160 reprezintă text, scrisori și cum, precum. 6 00:00:21,160 --> 00:00:22,810 >> De ce ne-ar deranja să faci asta? 7 00:00:22,810 --> 00:00:25,450 Ei bine, sub capota, un calculator cu adevărat numai 8 00:00:25,450 --> 00:00:29,070 înțelege zero și unu, cifrele binare, deoarece acestea 9 00:00:29,070 --> 00:00:32,100 pot fi reprezentate cu ușurință lucruri electromagnetice. 10 00:00:32,100 --> 00:00:35,040 >> De exemplu, cred că de memoria calculatorului ca un lung 11 00:00:35,040 --> 00:00:37,810 șir de becuri, prin care fiecare individ bec 12 00:00:37,810 --> 00:00:40,680 reprezintă un zero dacă este oprit, iar o 13 00:00:40,680 --> 00:00:42,230 în cazul în care este pornit. 14 00:00:42,230 --> 00:00:44,730 În loc de a folosi o grămadă de becuri, unele moderne 15 00:00:44,730 --> 00:00:46,990 Memoria face acest lucru folosind condensatori care dețin un nivel scăzut 16 00:00:46,990 --> 00:00:49,120 debita pentru a reprezenta un zero și o taxă mare 17 00:00:49,120 --> 00:00:50,780 să reprezinte una. 18 00:00:50,780 --> 00:00:52,510 >> Există alte tehnici, precum și. 19 00:00:52,510 --> 00:00:55,500 Oricum, în scopul de a stoca în memorie ceva, avem nevoie să 20 00:00:55,500 --> 00:00:57,590 prima ao transforma în ceva care poate fi de fapt 21 00:00:57,590 --> 00:01:00,140 reprezentate în hardware fizic. 22 00:01:00,140 --> 00:01:02,450 Așa că haideți să ne gândim cum am putea reprezenta scrisori cu 23 00:01:02,450 --> 00:01:04,230 binar notație. 24 00:01:04,230 --> 00:01:08,141 În limba engleză, avem 26 de litere din alfabetică, A, 25 00:01:08,141 --> 00:01:12,930 >> B, C, D, și așa mai departe, până la Z. Putem atribui fiecare dintre 26 00:01:12,930 --> 00:01:16,650 aceste numere o, spune la zero până la 25, și apoi folosind 27 00:01:16,650 --> 00:01:18,880 notație binară, ne putem reprezenta fiecare număr ca 28 00:01:18,880 --> 00:01:20,890 secvență de zero-uri și cele. 29 00:01:20,890 --> 00:01:22,420 Asta nu e prea rău. 30 00:01:22,420 --> 00:01:25,050 Cu toate acestea, faptul că nu va fi de ajuns. 31 00:01:25,050 --> 00:01:27,680 Cu acest sistem, nu putem distinge între realitate 32 00:01:27,680 --> 00:01:29,830 litere mari și mici. 33 00:01:29,830 --> 00:01:32,140 Dacă vrem calculatorul nostru de a fi capabil să diferențieze între 34 00:01:32,140 --> 00:01:36,020 cele două cazuri, atunci avem nevoie de o suplimentare de 26 de numere. 35 00:01:36,020 --> 00:01:38,700 Și ce despre perioadele, virgule, și 36 00:01:38,700 --> 00:01:40,390 alte semne de punctuație? 37 00:01:40,390 --> 00:01:43,560 >> Pe tastatura mea, am 32 al celor, inclusiv toate 38 00:01:43,560 --> 00:01:46,800 caractere speciale, cum ar fi cursorului și ampersand. 39 00:01:46,800 --> 00:01:49,700 Asta e nu, inclusiv personajele cifre, zero la noua, 40 00:01:49,700 --> 00:01:51,840 din moment ce încă mai doresc să fie în măsură să tastați numere în zecimal 41 00:01:51,840 --> 00:01:54,840 notație pe calculator, chiar dacă computerul numai într-adevăr 42 00:01:54,840 --> 00:01:57,830 înțelege notația binară sub capota. 43 00:01:57,830 --> 00:02:00,620 >> Și, în sfârșit, vom avea nevoie pentru a reprezenta un caracter spațiu atât de 44 00:02:00,620 --> 00:02:02,450 că barul nostru Space funcționează. 45 00:02:02,450 --> 00:02:04,920 Deci, imaginind cum să reprezinte textul de pe calculator 46 00:02:04,920 --> 00:02:08,400 ia un pic mai mult decat ne-am fi gândit inițial. 47 00:02:08,400 --> 00:02:11,710 În plus, presupunem că apoi vin cu propriul nostru de codare 48 00:02:11,710 --> 00:02:14,560 sistem pentru a reprezenta caractere ca numere. 49 00:02:14,560 --> 00:02:17,470 Cu toate acestea ne vom hotărî să codifica caractere vor fi în mod inevitabil 50 00:02:17,470 --> 00:02:20,630 arbitrar, după cum am văzut mai devreme, când am vorbit despre cum se utilizează 51 00:02:20,630 --> 00:02:23,730 Numerele zero, prin 25 pentru a reprezenta literele A 52 00:02:23,730 --> 00:02:26,850 prin Z. De ce nu folosiți la 10 la 35, astfel încât să putem salva 53 00:02:26,850 --> 00:02:29,350 la zero la noua pentru caracterele cifre? 54 00:02:29,350 --> 00:02:31,590 >> Nu e nici un motiv real, ne-am ales ce părea 55 00:02:31,590 --> 00:02:33,770 cel mai bine pentru noi. 56 00:02:33,770 --> 00:02:37,650 Înapoi la începutul anilor 1960, aceasta a fost o problemă reală. 57 00:02:37,650 --> 00:02:39,370 Diferiți producători de calculatoare au fost folosiți 58 00:02:39,370 --> 00:02:41,910 diferite scheme de codare, și această comunicare a făcut 59 00:02:41,910 --> 00:02:44,340 între diverse masini o sarcină foarte dificilă. 60 00:02:44,340 --> 00:02:47,810 American National Standards Institute, ANSI, 61 00:02:47,810 --> 00:02:50,210 a format un comitet pentru a dezvolta un sistem comun. 62 00:02:50,210 --> 00:02:53,780 Și în 1963, Codul american standard pentru informațiile 63 00:02:53,780 --> 00:02:58,600 Interchange, mai frecvent cunoscut sub numele de ASCII, sa născut. 64 00:02:58,600 --> 00:03:01,360 >> ASCII a fost conceput ca o codare de șapte biți, care 65 00:03:01,360 --> 00:03:03,800 înseamnă că fiecare caracter este reprezentat printr-o combinație 66 00:03:03,800 --> 00:03:06,070 de șapte zerouri și cele. 67 00:03:06,070 --> 00:03:09,670 Cu aceste două valori posibile, zero sau unu, pentru fiecare 68 00:03:09,670 --> 00:03:14,040 din cele șapte biți, există două pentru a saptea sau 128 69 00:03:14,040 --> 00:03:16,120 caractere care pot fi reprezentate cu ASCII 70 00:03:16,120 --> 00:03:18,140 codare sistem. 71 00:03:18,140 --> 00:03:21,480 Deci 128 de caractere sună ca o mulțime, nu? 72 00:03:21,480 --> 00:03:24,180 Ei bine, amintiți-vă că există 26 de litere mici, în 73 00:03:24,180 --> 00:03:29,260 Engleză, încă 26 de litere majuscule, cifre, caractere 10 74 00:03:29,260 --> 00:03:31,470 32 semne de punctuație și caractere speciale, 75 00:03:31,470 --> 00:03:33,430 și un caracter spațiu. 76 00:03:33,430 --> 00:03:37,050 >> Asta ne pune la 95, deci avem încă 33 de caractere pe care le 77 00:03:37,050 --> 00:03:38,400 poate reprezenta. 78 00:03:38,400 --> 00:03:39,900 >> Deci, ce-a mai rămas? 79 00:03:39,900 --> 00:03:43,130 Ei bine, în zilele de dezvoltare a ASCII, teletype 80 00:03:43,130 --> 00:03:45,080 Mașini, care sunt mașini de scris, care sunt utilizate pentru a 81 00:03:45,080 --> 00:03:48,040 trimite mesaje printr-o rețea, s-au răspândit. 82 00:03:48,040 --> 00:03:50,030 Și aceste mașini au avut caractere suplimentare utilizate pentru 83 00:03:50,030 --> 00:03:52,890 le controla, de exemplu, pentru a le spune când să se mute 84 00:03:52,890 --> 00:03:57,620 capul de imprimare în jos o linie, alimentare linie sau tasta linie nouă, 85 00:03:57,620 --> 00:04:00,440 atunci când pentru a trece la marginea din stânga, retur de car, 86 00:04:00,440 --> 00:04:04,890 sau pur si simplu returnati tasta, și când pentru a merge înapoi cu un spațiu, 87 00:04:04,890 --> 00:04:07,760 Caracterul backspace, și așa mai departe. 88 00:04:07,760 --> 00:04:10,250 >> Aceste caractere sunt numite caractere de control, și ei 89 00:04:10,250 --> 00:04:12,680 constituie restul setului ASCII. 90 00:04:12,680 --> 00:04:15,230 Deci, dacă ne uităm la o masă ASCII, vedem că primul 91 00:04:15,230 --> 00:04:18,800 32 de numere, la zero, prin 31, sunt rezervate pentru controlul 92 00:04:18,800 --> 00:04:20,200 caractere. 93 00:04:20,200 --> 00:04:23,420 Dar am spus doar că au existat 33 de caractere de control. 94 00:04:23,420 --> 00:04:24,780 Care-i treaba? 95 00:04:24,780 --> 00:04:29,350 Ei bine, numărul zero și 127, primul și ultimul 96 00:04:29,350 --> 00:04:32,560 Set ASCII, au modele speciale de biți, toate zerouri și toate 97 00:04:32,560 --> 00:04:34,710 cele, respectiv. 98 00:04:34,710 --> 00:04:36,860 >> Designerii de ASCII a decis, prin urmare, să 99 00:04:36,860 --> 00:04:39,610 păstra aceste numere pentru caractere speciale suplimentare, 100 00:04:39,610 --> 00:04:43,310 și anume caracterul nul și caracterul DEL. 101 00:04:43,310 --> 00:04:46,340 Nul și DEL au fost destinate pentru editare bandă de hârtie, care a folosit 102 00:04:46,340 --> 00:04:48,930 pentru a fi un mod comun de stocare a datelor. 103 00:04:48,930 --> 00:04:51,850 Bandă de hârtie a fost literalmente doar o fâșie lungă de hârtie, cât și la 104 00:04:51,850 --> 00:04:53,760 intervale regulate pe bandă, te-ai lovi 105 00:04:53,760 --> 00:04:55,430 găuri pentru a stoca date. 106 00:04:55,430 --> 00:04:58,720 În funcție de lățimea benzii, fiecare coloană va fi 107 00:04:58,720 --> 00:05:03,186 posibilitatea de a găzdui cinci, șase, șapte, sau opt biți. 108 00:05:03,186 --> 00:05:05,930 >> Pentru a reprezenta un pic la zero, ai face nimic pentru banda, ai 109 00:05:05,930 --> 00:05:07,930 lasa doar un spațiu gol. 110 00:05:07,930 --> 00:05:10,560 Pentru un pic unul, ai o gaură. 111 00:05:10,560 --> 00:05:12,980 Caracterul nul ar lăsa doar o coloană necompletată, 112 00:05:12,980 --> 00:05:14,480 indicând toate zerouri. 113 00:05:14,480 --> 00:05:17,250 Și caracterul DEL-ar lovi cu pumnul o coloană plină de găuri 114 00:05:17,250 --> 00:05:18,550 prin caseta ta. 115 00:05:18,550 --> 00:05:21,300 Ca urmare, ai putea folosi caracterul DEL pentru a șterge 116 00:05:21,300 --> 00:05:22,440 informații. 117 00:05:22,440 --> 00:05:25,060 Imaginați-vă un tur de scrutin preumplută-out electorală și apoi 118 00:05:25,060 --> 00:05:27,180 stantare toate găurile unpunched. 119 00:05:27,180 --> 00:05:29,410 >> Ai anula buletinul de vot, deoarece este imposibil să se 120 00:05:29,410 --> 00:05:31,820 spune ce voturile au fost originale. 121 00:05:31,820 --> 00:05:34,720 În timp ce caracterul DEL este încă folosit este modernă 122 00:05:34,720 --> 00:05:37,980 Ștergeți-cheie, caracterul nul a ajuns să fie folosit ca 123 00:05:37,980 --> 00:05:40,010 Caracterul reziliere pentru siruri de caractere C și 124 00:05:40,010 --> 00:05:41,990 unele alte formate de date. 125 00:05:41,990 --> 00:05:45,140 Tu l-ar putea, stiu ca personajul la zero backslash, 126 00:05:45,140 --> 00:05:47,720 din moment ce e cum le reprezenta în scris. 127 00:05:47,720 --> 00:05:49,580 Deci, înapoi la masa noastră ASCII. 128 00:05:49,580 --> 00:05:52,770 După primele 32 de caractere de control veni 95 129 00:05:52,770 --> 00:05:54,280 caractere imprimabile. 130 00:05:54,280 --> 00:05:55,800 >> Momentan nu sunt decizii de rece de design cuplu în valoare de 131 00:05:55,800 --> 00:05:57,330 vorbesc despre aici. 132 00:05:57,330 --> 00:06:00,810 În primul rând, personajele zecimal cifre, zero la noua, 133 00:06:00,810 --> 00:06:04,050 corespund cu numerele 48, prin 57, care pare 134 00:06:04,050 --> 00:06:06,980 cufundată până ne uităm la numerele 48, prin 57 135 00:06:06,980 --> 00:06:09,080 scrisă în notație binară. 136 00:06:09,080 --> 00:06:11,530 Dacă vom face acest lucru, atunci vom vedea că cifra de caractere, 137 00:06:11,530 --> 00:06:22,320 la zero, pentru a corespunde 0110000, unul hărți pentru a 0110001, doi la 138 00:06:22,320 --> 00:06:26,640 0110010, și așa mai departe. 139 00:06:26,640 --> 00:06:27,950 Vezi modelul? 140 00:06:27,950 --> 00:06:30,170 Fiecare personaj cifre este mapat la corespunzătoare sale 141 00:06:30,170 --> 00:06:35,170 echivalentul în notație binară, prefixate cu 011. 142 00:06:35,170 --> 00:06:38,820 Următorul, observați că litere mari încep de la 65 de ani, 143 00:06:38,820 --> 00:06:41,310 cu majuscule A, dar cu litere mici 144 00:06:41,310 --> 00:06:43,010 nu începe până la 97. 145 00:06:43,010 --> 00:06:45,580 Deci, există 32 de locuri în între. 146 00:06:45,580 --> 00:06:47,000 Asta pare ciudat. 147 00:06:47,000 --> 00:06:49,500 Acestea sunt doar 26 de litere din alfabet. 148 00:06:49,500 --> 00:06:51,410 >> De ce să-i despărțim ca asta? 149 00:06:51,410 --> 00:06:53,960 Din nou, dacă ne uităm la reprezentanțele binare, putem 150 00:06:53,960 --> 00:06:55,230 vedea un model. 151 00:06:55,230 --> 00:07:01,360 Majusculă A este reprezentată de 1000001, și litere mici a este 152 00:07:01,360 --> 00:07:05,810 reprezentată de 1100001. 153 00:07:05,810 --> 00:07:12,770 Majuscule B este reprezentată de 1000010, și b minuscule este 154 00:07:12,770 --> 00:07:17,280 reprezentată de 1100010. 155 00:07:17,280 --> 00:07:19,440 Pot să vă spun ce se întâmplă aici? 156 00:07:19,440 --> 00:07:22,470 Biți care este a doua din stânga, în două pentru a 157 00:07:22,470 --> 00:07:26,510 cincimi, pentru poziția 32ths, este 0 pentru toate majuscule 158 00:07:26,510 --> 00:07:30,120 litere, și 1 pentru toate litere mici. 159 00:07:30,120 --> 00:07:33,130 >> Asta înseamnă conversia de la litere mari la litere mici, și 160 00:07:33,130 --> 00:07:36,000 invers, este o chestiune de flip-bit simplu. 161 00:07:36,000 --> 00:07:38,380 Așa că ne aduce la sfârșitul tabelului ASCII. 162 00:07:38,380 --> 00:07:40,700 Vă puteți gândi la ceva ce am uitat? 163 00:07:40,700 --> 00:07:42,510 Ei bine, ce zici de enye spaniolă, sau 164 00:07:42,510 --> 00:07:44,630 Greacă sau alfabete chirilice? 165 00:07:44,630 --> 00:07:46,610 Și cum despre Chineză de caractere? 166 00:07:46,610 --> 00:07:49,050 Există o mulțime care a fost lăsat în afara ASCII. 167 00:07:49,050 --> 00:07:51,920 Cu toate acestea, un alt standard numit Unicode a fost 168 00:07:51,920 --> 00:07:53,040 dezvoltat pentru a acoperi toate aceste 169 00:07:53,040 --> 00:07:54,840 personaje și multe altele. 170 00:07:54,840 --> 00:07:57,040 >> Dar asta e un subiect pentru altă dată. 171 00:07:57,040 --> 00:07:58,500 Numele meu este Nate Hardison. 172 00:07:58,500 --> 00:08:00,650 Acest lucru este CS50.