1 00:00:07,220 --> 00:00:09,290 [Powered by Google Translate] NATE Хардісон: У відео на двійкові, ми покажемо, як 2 00:00:09,290 --> 00:00:12,540 Уявімо безліч цілих чисел від нуля на вгору, 3 00:00:12,540 --> 00:00:15,110 використовуючи тільки цифри нулем і одиницею. 4 00:00:15,110 --> 00:00:17,890 У цьому відео, ми збираємося використовувати в двійковій системі числення 5 00:00:17,890 --> 00:00:21,160 являють собою текст, літери і такі, як добре. 6 00:00:21,160 --> 00:00:22,810 >> Навіщо ми взагалі це зробити? 7 00:00:22,810 --> 00:00:25,450 Ну, під капотом, комп'ютер тільки дійсно 8 00:00:25,450 --> 00:00:29,070 розуміє нулів і одиниць, двійкових цифр, так як ці 9 00:00:29,070 --> 00:00:32,100 може бути представлена ​​в легко з електромагнітним речі. 10 00:00:32,100 --> 00:00:35,040 >> Наприклад, думати про пам'ять комп'ютера, як довго 11 00:00:35,040 --> 00:00:37,810 Рядок з лампочок, причому кожен окремий лампи 12 00:00:37,810 --> 00:00:40,680 являє собою нуль, якщо вона вимкнена, і один 13 00:00:40,680 --> 00:00:42,230 якщо він включений. 14 00:00:42,230 --> 00:00:44,730 Замість купою лампочок, деякі сучасні 15 00:00:44,730 --> 00:00:46,990 пам'яті робить це, використовуючи конденсатори, які тримають низький 16 00:00:46,990 --> 00:00:49,120 доручити представляти нуля і високий заряд 17 00:00:49,120 --> 00:00:50,780 представляють один. 18 00:00:50,780 --> 00:00:52,510 >> Є й інші методи, а також. 19 00:00:52,510 --> 00:00:55,500 У всякому разі, для того, щоб зберігати всі в пам'яті, ми повинні 20 00:00:55,500 --> 00:00:57,590 спочатку перетворити його у щось, що може бути насправді 21 00:00:57,590 --> 00:01:00,140 представлений у фізичному обладнанні. 22 00:01:00,140 --> 00:01:02,450 Так що давайте думати про те, як ми могли б представляти листи з 23 00:01:02,450 --> 00:01:04,230 двійковій системі числення. 24 00:01:04,230 --> 00:01:08,141 В англійській мові, у нас є 26 букв в алфавітному,, 25 00:01:08,141 --> 00:01:12,930 >> B, C, D, і так далі, аж до Z. Ми можемо присвоїти кожному з 26 00:01:12,930 --> 00:01:16,650 це число, скажімо від нуля до 25, а потім за допомогою 27 00:01:16,650 --> 00:01:18,880 двійковій системі числення, ми можемо уявити кожне число у вигляді 28 00:01:18,880 --> 00:01:20,890 послідовність нулів і одиниць. 29 00:01:20,890 --> 00:01:22,420 Це не так уже й погано. 30 00:01:22,420 --> 00:01:25,050 Тим не менш, це не буде достатньо. 31 00:01:25,050 --> 00:01:27,680 За допомогою цієї системи, ми не можемо насправді відмінність між 32 00:01:27,680 --> 00:01:29,830 малі та великі літери. 33 00:01:29,830 --> 00:01:32,140 Якщо ми хочемо, щоб наш комп'ютер, щоб мати можливість розрізняти 34 00:01:32,140 --> 00:01:36,020 двох випадків, то нам потрібно ще 26 числа. 35 00:01:36,020 --> 00:01:38,700 А як щодо періодів, коми та 36 00:01:38,700 --> 00:01:40,390 інших розділових знаків? 37 00:01:40,390 --> 00:01:43,560 >> На моїй клавіатурі, я отримав 32 з них, в тому числі всі 38 00:01:43,560 --> 00:01:46,800 спеціальні символи, такі як вставки і амперсанд. 39 00:01:46,800 --> 00:01:49,700 Це не рахуючи цифрових символів, від нуля до дев'яти, 40 00:01:49,700 --> 00:01:51,840 так як ми все ще хочемо, щоб мати можливість введення цифр у десятковій 41 00:01:51,840 --> 00:01:54,840 позначень на комп'ютері, навіть якщо комп'ютер тільки дійсно 42 00:01:54,840 --> 00:01:57,830 розуміє двійковій системі числення під капотом. 43 00:01:57,830 --> 00:02:00,620 >> І, нарешті, ми повинні являти собою простір характер, так 44 00:02:00,620 --> 00:02:02,450 що наші Space Bar працює. 45 00:02:02,450 --> 00:02:04,920 Так, з'ясовуючи, як для представлення тексту на комп'ютері 46 00:02:04,920 --> 00:02:08,400 займає трохи більше, ніж ми могли подумати спочатку. 47 00:02:08,400 --> 00:02:11,710 Крім того, припустимо, що ми тоді придумали наші власні кодування 48 00:02:11,710 --> 00:02:14,560 Схема для представлення символів у вигляді чисел. 49 00:02:14,560 --> 00:02:17,470 Однак ми вирішили для кодування символів неминуче буде 50 00:02:17,470 --> 00:02:20,630 довільною, як ми бачили раніше, коли ми говорили про використання 51 00:02:20,630 --> 00:02:23,730 Номери нуля до 25 представляють букви 52 00:02:23,730 --> 00:02:26,850 до Z. Чому б не використати від 10 до 35, так що ми можемо врятувати 53 00:02:26,850 --> 00:02:29,350 від нуля до дев'яти для цифрових символів? 54 00:02:29,350 --> 00:02:31,590 >> Там немає реальної причини, ми просто вибрали все, що здавалося 55 00:02:31,590 --> 00:02:33,770 краще для нас. 56 00:02:33,770 --> 00:02:37,650 Ще на початку 1960-х років, це була реальна проблема. 57 00:02:37,650 --> 00:02:39,370 Різні виробники комп'ютерів використовують 58 00:02:39,370 --> 00:02:41,910 різних схем кодування, і це зробило зв'язок 59 00:02:41,910 --> 00:02:44,340 між різними машинами дуже важким завданням. 60 00:02:44,340 --> 00:02:47,810 Американський Національний Інститут Стандартів, ANSI, 61 00:02:47,810 --> 00:02:50,210 сформований комітет з розробки загальної схеми. 62 00:02:50,210 --> 00:02:53,780 А в 1963 році американський стандартний код для інформації 63 00:02:53,780 --> 00:02:58,600 Interchange, більш відомий як ASCII, народився. 64 00:02:58,600 --> 00:03:01,360 >> ASCII був розроблений як сім-бітної кодуванні, яке 65 00:03:01,360 --> 00:03:03,800 означає, що кожен символ являє собою комбінацію 66 00:03:03,800 --> 00:03:06,070 сім нулів і одиниць. 67 00:03:06,070 --> 00:03:09,670 З урахуванням цих двох можливих значень, нуль або один, для кожного 68 00:03:09,670 --> 00:03:14,040 із семи бітів, є два до сьомого або 128 69 00:03:14,040 --> 00:03:16,120 символів, які можуть бути представлені ASCII 70 00:03:16,120 --> 00:03:18,140 схеми кодування. 71 00:03:18,140 --> 00:03:21,480 Так що 128 символів звучить, як багато, вірно? 72 00:03:21,480 --> 00:03:24,180 Ну, пам'ятаєте, що існує 26 малих літер у 73 00:03:24,180 --> 00:03:29,260 Англійська, ще 26 заголовних букв, 10 цифр, символів, 74 00:03:29,260 --> 00:03:31,470 32 знаків пунктуації та спеціальні символи, 75 00:03:31,470 --> 00:03:33,430 і один пробіл. 76 00:03:33,430 --> 00:03:37,050 >> Це ставить нас на 95, так що у нас є ще 33 символів, що ми 77 00:03:37,050 --> 00:03:38,400 може представляти. 78 00:03:38,400 --> 00:03:39,900 >> То що ж залишається? 79 00:03:39,900 --> 00:03:43,130 Ну, в часи розвитку ASCII, телетайпного 80 00:03:43,130 --> 00:03:45,080 Машини, які друкарські машинки, які використовуються для 81 00:03:45,080 --> 00:03:48,040 посилати повідомлення по мережі, були широко поширені. 82 00:03:48,040 --> 00:03:50,030 І ці машини мали додаткові символи, використовувані для 83 00:03:50,030 --> 00:03:52,890 управляти ними, наприклад, сказати їм, коли для переміщення 84 00:03:52,890 --> 00:03:57,620 друкуючої голівки вниз лінію, яка живить лінію або новий ключовий лінією, 85 00:03:57,620 --> 00:04:00,440 , Коли для переходу до лівого краю, повернення каретки, 86 00:04:00,440 --> 00:04:04,890 або просто повернути ключ, і коли повернутися одному просторі, 87 00:04:04,890 --> 00:04:07,760 Повернення на один символ, і так далі. 88 00:04:07,760 --> 00:04:10,250 >> Ці символи називаються керуючі символи, і вони 89 00:04:10,250 --> 00:04:12,680 складають іншу частину ASCII набір. 90 00:04:12,680 --> 00:04:15,230 Таким чином, якщо ми подивимося на таблицю ASCII, ми бачимо, що перші 91 00:04:15,230 --> 00:04:18,800 32 номери, від нуля до 31, зарезервовані для контролю 92 00:04:18,800 --> 00:04:20,200 символи. 93 00:04:20,200 --> 00:04:23,420 Але ми тільки що сказали, що були 33 символів управління. 94 00:04:23,420 --> 00:04:24,780 В чому справа? 95 00:04:24,780 --> 00:04:29,350 Ну, нуль і 127, перший і останній з 96 00:04:29,350 --> 00:04:32,560 ASCII набір, є спеціальні моделі небагато, всі нулі і всі 97 00:04:32,560 --> 00:04:34,710 ті, відповідно. 98 00:04:34,710 --> 00:04:36,860 >> Дизайнери вирішили ASCII, отже, 99 00:04:36,860 --> 00:04:39,610 зберегти ці номери за додаткові спеціальні символи, 100 00:04:39,610 --> 00:04:43,310 а саме нульовий символ і символ DEL. 101 00:04:43,310 --> 00:04:46,340 Null і DEL були призначені для паперової стрічки редагування, в якому використовується 102 00:04:46,340 --> 00:04:48,930 щоб бути поширеним способом зберігання даних. 103 00:04:48,930 --> 00:04:51,850 Паперова стрічка була буквально в довгу смужку паперу, і на 104 00:04:51,850 --> 00:04:53,760 Регулярно на стрічку, ви б пробити 105 00:04:53,760 --> 00:04:55,430 отворів для зберігання даних. 106 00:04:55,430 --> 00:04:58,720 Залежно від ширини стрічки, кожна колонка буде 107 00:04:58,720 --> 00:05:03,186 в змозі вмістити п'ять, шість, сім, чи вісім біт. 108 00:05:03,186 --> 00:05:05,930 >> Для представлення нульовий біт, ти б нічого не робити на стрічку, ви б 109 00:05:05,930 --> 00:05:07,930 просто залишити порожній простір. 110 00:05:07,930 --> 00:05:10,560 Для одного біта, ви б пробити отвір. 111 00:05:10,560 --> 00:05:12,980 Нульовий символ буде просто залишити порожній колонку, 112 00:05:12,980 --> 00:05:14,480 із зазначенням всіх нулів. 113 00:05:14,480 --> 00:05:17,250 І характер DEL б пробити колонку діряве 114 00:05:17,250 --> 00:05:18,550 через вашу стрічку. 115 00:05:18,550 --> 00:05:21,300 В результаті, ви можете використовувати символ DEL, щоб видалити 116 00:05:21,300 --> 00:05:22,440 інформацію. 117 00:05:22,440 --> 00:05:25,060 Уявіть собі, приймаючи заповнений виборчий бюлетень, а потім 118 00:05:25,060 --> 00:05:27,180 пробиваючи всі unpunched отвори. 119 00:05:27,180 --> 00:05:29,410 >> Ви недійсним голосування, тому що це неможливо 120 00:05:29,410 --> 00:05:31,820 сказати, що оригінальні голоси були. 121 00:05:31,820 --> 00:05:34,720 У той час як символ DEL і раніше використовується сучасна 122 00:05:34,720 --> 00:05:37,980 Видалити ключ, нульовий символ став використовуватися в якості 123 00:05:37,980 --> 00:05:40,010 символ завершення для рядків C та 124 00:05:40,010 --> 00:05:41,990 деякі інші формати даних. 125 00:05:41,990 --> 00:05:45,140 Ви можете знати його як символ нуля зворотну косу риску, 126 00:05:45,140 --> 00:05:47,720 так це те, як ми представляємо його в письмовому вигляді. 127 00:05:47,720 --> 00:05:49,580 Отже, повернемося до наших ASCII таблиці. 128 00:05:49,580 --> 00:05:52,770 Після перших 32 символів контролю і управління 95 - 129 00:05:52,770 --> 00:05:54,280 друкованих символів. 130 00:05:54,280 --> 00:05:55,800 >> Є кілька прохолодно дизайнерських рішень варто 131 00:05:55,800 --> 00:05:57,330 говоримо тут. 132 00:05:57,330 --> 00:06:00,810 По-перше, десяткових цифр, символів, від нуля до дев'яти, 133 00:06:00,810 --> 00:06:04,050 відповідають номерам з 48 по 57, який, здається, 134 00:06:04,050 --> 00:06:06,980 нічим не примітний, поки ми не подивимося на цифри 48 по 57 135 00:06:06,980 --> 00:06:09,080 написано в двійковій системі числення. 136 00:06:09,080 --> 00:06:11,530 Якщо ми це зробимо, то ми бачимо, що цифрою, 137 00:06:11,530 --> 00:06:22,320 нулю, відповідає 0110000, однієї карти на 0110001, від двох до 138 00:06:22,320 --> 00:06:26,640 0110010, і так далі. 139 00:06:26,640 --> 00:06:27,950 Див. зразок? 140 00:06:27,950 --> 00:06:30,170 Кожна цифра характер відображається на відповідній 141 00:06:30,170 --> 00:06:35,170 еквівалент в двійковій системі числення, з префіксом 011. 142 00:06:35,170 --> 00:06:38,820 Потім, ви помітите, що великі літери починаються з 65, 143 00:06:38,820 --> 00:06:41,310 з великої, але рядкових букв 144 00:06:41,310 --> 00:06:43,010 не починаються до 97. 145 00:06:43,010 --> 00:06:45,580 Таким чином, є 32 просторів між ними. 146 00:06:45,580 --> 00:06:47,000 Це здається дивним. 147 00:06:47,000 --> 00:06:49,500 Вони тільки 26 букв в алфавіті. 148 00:06:49,500 --> 00:06:51,410 >> Чому розділити їх, як це? 149 00:06:51,410 --> 00:06:53,960 Знову ж таки, якщо ми подивимося на двійкових уявлень, ми можемо 150 00:06:53,960 --> 00:06:55,230 см. шаблон. 151 00:06:55,230 --> 00:07:01,360 Прописні представлена ​​1000001, а нижній є 152 00:07:01,360 --> 00:07:05,810 представлені 1100001. 153 00:07:05,810 --> 00:07:12,770 Прописні B представлена ​​1000010, і рядкові б це 154 00:07:12,770 --> 00:07:17,280 представлені 1100010. 155 00:07:17,280 --> 00:07:19,440 Чи можете ви сказати, що тут відбувається? 156 00:07:19,440 --> 00:07:22,470 Біт, який вже другий ліворуч, в два- 157 00:07:22,470 --> 00:07:26,510 п'яте, для 32ths положення, рівне 0 для всіх прописних 158 00:07:26,510 --> 00:07:30,120 букви, і 1 для всіх малих літер. 159 00:07:30,120 --> 00:07:33,130 >> Це означає, що перетворення з верхнього регістру в нижній регістр, і 160 00:07:33,130 --> 00:07:36,000 навпаки, це запитання проста фліп-біт. 161 00:07:36,000 --> 00:07:38,380 Так що підводить нас до кінця ASCII таблиці. 162 00:07:38,380 --> 00:07:40,700 Чи можете ви пригадати все, що ми забули? 163 00:07:40,700 --> 00:07:42,510 Ну, що про іспанського enye, або 164 00:07:42,510 --> 00:07:44,630 Грецькі або кирилиця? 165 00:07:44,630 --> 00:07:46,610 А як щодо китайських ієрогліфів? 166 00:07:46,610 --> 00:07:49,050 Там дуже багато який залишився з ASCII. 167 00:07:49,050 --> 00:07:51,920 Однак, інший стандарт під назвою Unicode була 168 00:07:51,920 --> 00:07:53,040 розроблена, щоб покрити всі ці 169 00:07:53,040 --> 00:07:54,840 символи та багато іншого. 170 00:07:54,840 --> 00:07:57,040 >> Але це тема для іншого часу. 171 00:07:57,040 --> 00:07:58,500 Мене звати Нейт Хардісон. 172 00:07:58,500 --> 00:08:00,650 Це CS50.