1 00:00:07,220 --> 00:00:09,290 [Powered by Google Translate] Nate HARDISON: Во видео на бинарни, ние покаже како да се 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 >> Б, Ц, Д, и така натаму, до преку З Ние можеме да му ја додели на секој од 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 дека нашите растојание работи. 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 да ги претставуваат буквите A 52 00:02:23,730 --> 00:02:26,850 преку З зошто да не користат од 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 година, American Standard Code за информатичко 63 00:02:53,780 --> 00:02:58,600 Размена, попознат како 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 Backspace карактер, и така натаму. 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 имено null карактер и карактер DEL. 101 00:04:43,310 --> 00:04:46,340 Ништовни и 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 Карактерот null само ќе остави празно колона, 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, и мали букви a е 152 00:07:01,360 --> 00:07:05,810 претставена од 1.100.001. 153 00:07:05,810 --> 00:07:12,770 Големи Б е претставена од страна 1000010, и мали б е 154 00:07:12,770 --> 00:07:17,280 претставена од 1.100.010. 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 Меѓутоа, друг стандард наречен Уникод е 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 Моето име е Нејт Hardison. 172 00:07:58,500 --> 00:08:00,650 Ова е CS50.