1 00:00:01,984 --> 00:00:07,450 [Powered by Google Translate] [SONS ELECTRÒNICS STATIC] 2 00:00:07,450 --> 00:00:11,320 ROB: Bé, i què ens vas portar a CS50 és Spaces. 3 00:00:11,320 --> 00:00:12,325 ALI: Espera, espera de nou. 4 00:00:12,325 --> 00:00:13,175 Benvinguts a la secció! 5 00:00:13,175 --> 00:00:13,860 ROB: Benvinguts a la secció! 6 00:00:13,860 --> 00:00:14,742 ALI: Yay! 7 00:00:14,742 --> 00:00:16,840 ROB: supersección! 8 00:00:16,840 --> 00:00:18,610 ALI: Sóc Ali i això és Rob. 9 00:00:18,610 --> 00:00:20,680 Bé, ara explicarem Spaces. 10 00:00:20,680 --> 00:00:23,650 ROB: I què ens vas portar a CS50 és Spaces. 11 00:00:23,650 --> 00:00:29,260 Vostè va a utilitzar molt això en les seccions d'aquest semestre. 12 00:00:29,260 --> 00:00:32,110 Bàsicament, ja hem hagut de baixar l'aparell. 13 00:00:32,110 --> 00:00:38,630 I vostè pot pensar CS50 Espais com una interfície web que parla d'un aparell 14 00:00:38,630 --> 00:00:40,670 que tenim en algun servidor en algun lloc. 15 00:00:40,670 --> 00:00:42,990 Així que vostè pot executar el seu codi en aquest interfície, i farem 16 00:00:42,990 --> 00:00:44,180 veure la manera de fer les coses. 17 00:00:44,180 --> 00:00:48,200 També pot buscar en el codi d'altres persones en la secció, i - 18 00:00:48,200 --> 00:00:51,920 ALI: I com algunes persones han descobert, pots xatejar gent al lateral. 19 00:00:51,920 --> 00:00:54,230 I tots ho veuran, també, així que és emocionant. 20 00:00:54,230 --> 00:00:55,655 Entra, veuen i seu. 21 00:00:55,655 --> 00:00:57,060 Presa seient. 22 00:00:57,060 --> 00:00:57,840 >> ROB: Així, les seccions són - 23 00:00:57,840 --> 00:00:59,380 ALI: No, no, vostès poden venir. 24 00:00:59,380 --> 00:01:03,356 ROB: Les seccions seran molt més interactiu aquest semestre. 25 00:01:03,356 --> 00:01:04,180 ALI: Oh, ell és com - 26 00:01:04,180 --> 00:01:05,840 Oh. 27 00:01:05,840 --> 00:01:07,530 D'acord, genial. 28 00:01:07,530 --> 00:01:15,630 Així que si vostès tot just estan entrant, vostè pot anar a aquest enllaç, si puc aconseguir 29 00:01:15,630 --> 00:01:20,190 aquí, just aquí. 30 00:01:20,190 --> 00:01:22,780 En realitat, no puc escriure, perquè no hi ha espai a la placa, però en aquest enllaç 31 00:01:22,780 --> 00:01:27,160 aquí mateix, aneu a la dels equips, i entraràs CS50 32 00:01:27,160 --> 00:01:29,810 Espais, la qual cosa és una cosa molt bona. 33 00:01:32,460 --> 00:01:33,830 Bé. 34 00:01:33,830 --> 00:01:35,370 Té un problema? 35 00:01:35,370 --> 00:01:39,930 ROB: Així que vostè pot trobar els problemes - 36 00:01:39,930 --> 00:01:42,720 hem de ser capaços d'escriure això en algun lloc. 37 00:01:42,720 --> 00:01:50,040 Així que si vas a cs50.net/psets i aquest és el supersección hacker - 38 00:01:50,040 --> 00:01:55,870 i entres en l'edició pirata d'un conjunt de processadors, vegeu l'especificació 39 00:01:55,870 --> 00:01:57,620 en algun lloc de la pàgina - 40 00:02:01,940 --> 00:02:04,280 >> ALI: Així que, bàsicament, mentre que Rob està mirant, el que farem en 41 00:02:04,280 --> 00:02:06,650 Avui secció és hi ha una secció de problemes - 42 00:02:06,650 --> 00:02:07,600 ROB: - a la pàgina vuit. 43 00:02:07,600 --> 00:02:09,300 ALI: - anomenada secció de problemes - 44 00:02:09,300 --> 00:02:10,280 ROB: Secció de preguntes. 45 00:02:10,280 --> 00:02:11,630 ALI: Em sap greu, una secció de preguntes. 46 00:02:11,630 --> 00:02:14,450 I aquests són els que passarem - 47 00:02:14,450 --> 00:02:16,370 aquests són els que passarem avui a la secció. 48 00:02:16,370 --> 00:02:20,010 I nosaltres anem a codificar en CS50 Espais, i és d'esperar que funcionarà. 49 00:02:20,010 --> 00:02:22,210 I només podem parlar a través d'ells. 50 00:02:22,210 --> 00:02:24,510 I vostès poden fer preguntes cada vegada que se sent - 51 00:02:24,510 --> 00:02:27,890 >> ROB: Així que això s'està convertint en alguna cosa comú amb la majoria de conjunts de processadors. 52 00:02:27,890 --> 00:02:31,000 Crec que amb això, es diu que vostè no ha de lliurar aquestes preguntes polz 53 00:02:31,000 --> 00:02:36,780 Però la idea és que aquestes qüestions es posen en el conjunt de processadors, i vostè pot venir 54 00:02:36,780 --> 00:02:39,790 a la secció de tenir aquestes preguntes. 55 00:02:39,790 --> 00:02:42,730 O si vostè no ve a la secció, vostè pot respondre pel seu compte o aconseguir 56 00:02:42,730 --> 00:02:44,250 ajudar a les hores d'oficina o alguna cosa així. 57 00:02:44,250 --> 00:02:47,540 Però aquestes són qüestions que se suposa de preparar per al conjunt de problemes. 58 00:02:47,540 --> 00:02:50,910 I en l'edició pirata, moltes de les preguntes podria ser de 59 00:02:50,910 --> 00:02:54,170 l'ampliació del seu actual coneixement CS. 60 00:02:54,170 --> 00:02:55,370 ALI: Sí, bastant. 61 00:02:55,370 --> 00:02:57,950 >> Bé, llavors, és que tots els espais en CS50? 62 00:02:57,950 --> 00:02:59,457 Hola, endavant 63 00:02:59,457 --> 00:03:00,828 Ponència 1: Podem veure la direcció un cop més? 64 00:03:04,030 --> 00:03:07,000 Rob: Sí, això serà més fàcil una vegada que estigui en les seves seccions, i 65 00:03:07,000 --> 00:03:10,760 la TF només pot enviar per correu electrònic la URL per endavant. 66 00:03:10,760 --> 00:03:11,870 ALI: Yay, prengui seient. 67 00:03:11,870 --> 00:03:13,170 Hi ha seients aquí. 68 00:03:13,170 --> 00:03:14,420 El front no és tan dolent. 69 00:03:17,112 --> 00:03:18,362 Què? 70 00:03:20,650 --> 00:03:23,590 Per tant, CS50 Spaces, ens anem acostant. 71 00:03:23,590 --> 00:03:26,760 Algú té alguna pregunta abans d'entrar a - què? 72 00:03:26,760 --> 00:03:28,060 ROB: No hi ha tan sols un guix. 73 00:03:28,060 --> 00:03:29,270 [Inaudible] 74 00:03:29,270 --> 00:03:31,540 ALI: Em sap greu. 75 00:03:31,540 --> 00:03:32,950 Podries utilitzar les ungles? 76 00:03:32,950 --> 00:03:38,210 Estem en una habitació molt baixa tecnologia per a una classe molt alta tecnologia. 77 00:03:38,210 --> 00:03:40,795 Bé, tot el món és una espècie de bé? 78 00:03:40,795 --> 00:03:44,310 Algú té encara dubtes sobre això? 79 00:03:44,310 --> 00:03:48,540 Com he dit abans, anirem a través de la secció de preguntes 80 00:03:48,540 --> 00:03:51,340 les especificacions PSET. 81 00:03:51,340 --> 00:03:53,490 Així que només hi ha un parell de problemes que anem a 82 00:03:53,490 --> 00:03:57,490 codificar en CS50 Spaces. 83 00:03:57,490 --> 00:03:58,740 Estan tots bé? 84 00:04:01,010 --> 00:04:01,360 Bé. 85 00:04:01,360 --> 00:04:02,312 ¿Bé? 86 00:04:02,312 --> 00:04:04,260 ROB: Tens un ordinador portàtil? 87 00:04:04,260 --> 00:04:05,150 ALI: Pot passar l'estona amb Lucas. 88 00:04:05,150 --> 00:04:06,960 Està assegut al teu costat. 89 00:04:06,960 --> 00:04:10,030 Vinculació temps. 90 00:04:10,030 --> 00:04:10,990 >> ROB: Llavors, comenci amb el primer problema? 91 00:04:10,990 --> 00:04:11,260 ALI: Si. 92 00:04:11,260 --> 00:04:11,820 Podem començar. 93 00:04:11,820 --> 00:04:12,390 Vostè em vol - 94 00:04:12,390 --> 00:04:13,700 Puc anar. 95 00:04:13,700 --> 00:04:16,666 Per tant, anirem a les especificacions PSET. 96 00:04:16,666 --> 00:04:17,640 Oh, per què ho és - 97 00:04:17,640 --> 00:04:18,890 ROB: Control. 98 00:04:21,769 --> 00:04:25,770 ALI: Bé, anem a respondre a aquestes coses també? 99 00:04:25,770 --> 00:04:26,190 ROB: Oh, sí. 100 00:04:26,190 --> 00:04:27,280 Per tant - 101 00:04:27,280 --> 00:04:29,675 ALI: Oh, sí pantalons curts protagonitzada per tot el món rellotge de Rob? 102 00:04:32,430 --> 00:04:33,360 D'acord, genial. 103 00:04:33,360 --> 00:04:36,870 Rob: Sí, no crec que ens espera necessàriament que vostè tingui 104 00:04:36,870 --> 00:04:40,650 el vaig veure abans de venir a aquesta secció, però podem discutir els 105 00:04:40,650 --> 00:04:43,870 problemes per endavant, ja que estan en la secció de preguntes coses. 106 00:04:43,870 --> 00:04:46,480 Així que si no l'han vist, no es preocupi. 107 00:04:46,480 --> 00:04:48,630 Els que tenen poden tractar de respondre. 108 00:04:48,630 --> 00:04:53,875 >> Per tant, la primera pregunta, què és un pre-processador, com # include 109 00:04:53,875 --> 00:04:56,080 relacionar? 110 00:04:56,080 --> 00:04:58,440 Així que algú té resposta per això? 111 00:04:58,440 --> 00:04:59,320 ALI: Vostès poden parlar. 112 00:04:59,320 --> 00:05:00,308 És clar, endavant. 113 00:05:00,308 --> 00:05:03,766 Ponència 2: # include és un codi pre-escrit, i en lloc de 114 00:05:03,766 --> 00:05:08,706 copiar i enganxar-lo en el seu programa, simplement dient que inclouen, 115 00:05:08,706 --> 00:05:14,140 el pre-processador sap que hi és i que hauria d'afegir a 116 00:05:14,140 --> 00:05:17,520 més tard o abans que passi res més. 117 00:05:17,520 --> 00:05:18,466 ALI: Sí, impressionant. 118 00:05:18,466 --> 00:05:19,440 Cool. 119 00:05:19,440 --> 00:05:23,820 ROB: Llavors, quan en realitat estàs compilant un programa el pre-processador és aquest 120 00:05:23,820 --> 00:05:25,230 primer pas. 121 00:05:25,230 --> 00:05:27,620 Compilació passa en quatre grans passos. 122 00:05:27,620 --> 00:05:31,120 Així que el pre-processador és el gran primer, i és aquest tipus que va 123 00:05:31,120 --> 00:05:33,510 i busca a través de tots aquests símbols hash. 124 00:05:33,510 --> 00:05:36,610 I qualsevol línia que comenci amb un coixinet, el processador pre-mira i veu 125 00:05:36,610 --> 00:05:37,880 si es pot processar. 126 00:05:37,880 --> 00:05:43,800 Així que # include li diu al preprocessador per buscar alguna cs50.h 127 00:05:43,800 --> 00:05:47,830 presentar i només has de copiar i enganxar el contingut en aquest arxiu. 128 00:05:47,830 --> 00:05:50,970 Així que vostè pot realment # include el que vulguis, però és en la seva majoria serà 129 00:05:50,970 --> 00:05:53,700 H. Arxius. 130 00:05:53,700 --> 00:05:55,820 No hem arribat a # defineix encara, així que no importa. 131 00:05:55,820 --> 00:05:57,620 ALI: Sí, som bons en això. 132 00:05:57,620 --> 00:05:59,450 Algú té alguna pregunta sobre això? 133 00:05:59,450 --> 00:06:01,090 Estem bé? 134 00:06:01,090 --> 00:06:02,430 Següent pregunta. 135 00:06:02,430 --> 00:06:07,096 >> ALTAVEU 3: En la fi, hi havia alguna cosa al carrer també.? 136 00:06:07,096 --> 00:06:09,110 ¿Això és rellevant o és irrellevant? 137 00:06:09,110 --> 00:06:11,210 ROB: Sobre c amb el pre-processador.? 138 00:06:11,210 --> 00:06:13,990 Ponent 3: Sí, o ho puc fer alguna cosa? 139 00:06:13,990 --> 00:06:18,290 ROB: Així que el petit podria haver estat mostrant el preprocessat d'aquest arxiu i 140 00:06:18,290 --> 00:06:24,240 . Donar sortida a un altre arxiu c, de manera que pot pre-processar aquest arxiu - 141 00:06:24,240 --> 00:06:30,000 quan vostè acaba de funcionar com, hola o fer hello.c so metàl · lic, que està fent tot 142 00:06:30,000 --> 00:06:31,730 la compilació en un gran pas. 143 00:06:31,730 --> 00:06:34,780 Però vostè pot fer-ho de forma explícita en les seves etapes separades. 144 00:06:34,780 --> 00:06:36,950 Així que primer es pot pre-processar. 145 00:06:36,950 --> 00:06:42,260 A continuació, pot compilar, llavors es pot muntar, i llavors vostè pot vincular. 146 00:06:42,260 --> 00:06:43,620 Anem a arribar als altres. 147 00:06:43,620 --> 00:06:47,410 No obstant això, pre-processament, quin tipus del que preveu procés, i després que entri en 148 00:06:47,410 --> 00:06:49,270 altre. c arxiu. 149 00:06:49,270 --> 00:06:51,430 Com que pre-processament en realitat no canvia res. 150 00:06:51,430 --> 00:06:52,800 És només un munt de copiar i enganxar. 151 00:06:52,800 --> 00:06:56,760 Manualment, pot copiar i enganxar vostè mateix. 152 00:06:56,760 --> 00:06:59,630 ALI:. I per ser clar, l'arxiu és un arxiu c C, pel que és 153 00:06:59,630 --> 00:07:00,930 escrit en codi C. 154 00:07:00,930 --> 00:07:03,300 Així que va des del codi C a codi C. 155 00:07:03,300 --> 00:07:05,210 No ets més que afegir més codi amb la lliura. 156 00:07:05,210 --> 00:07:08,575 ROB: Quan es pre-processats, encara és un arxiu vàlid de C. 157 00:07:08,575 --> 00:07:09,940 ALTAVEU 3: D'acord. 158 00:07:09,940 --> 00:07:10,540 ALI: Bona pregunta. 159 00:07:10,540 --> 00:07:11,370 Això m'agrada. 160 00:07:11,370 --> 00:07:12,755 Val, següent pregunta. 161 00:07:17,870 --> 00:07:19,660 >> Quin és el compilador? 162 00:07:19,660 --> 00:07:20,824 Algú? 163 00:07:20,824 --> 00:07:21,286 Sí 164 00:07:21,286 --> 00:07:24,650 ALTAVEU 4: Canvia el codi de pre-processat en el muntatge. 165 00:07:24,650 --> 00:07:25,110 ALI: Perfect. 166 00:07:25,110 --> 00:07:25,390 ROB: Si. 167 00:07:25,390 --> 00:07:25,720 ALI: Cool. 168 00:07:25,720 --> 00:07:28,270 ROB: Així que això és el que el compilador està fent específicament 169 00:07:28,270 --> 00:07:30,740 quan estem usant Clang. 170 00:07:30,740 --> 00:07:35,100 En un sentit molt general, un compilador és com si estigués prenent el codi en un llenguatge 171 00:07:35,100 --> 00:07:37,070 i convertir-lo en un altre idioma. 172 00:07:37,070 --> 00:07:38,370 Així que en C - 173 00:07:38,370 --> 00:07:43,750 o, bé, Clang està prenent el codi que està en C i transformar per al muntatge. 174 00:07:43,750 --> 00:07:46,560 I que no ha de ser capaç d'entendre el conjunt en absolut. 175 00:07:46,560 --> 00:07:49,830 Però aquest és l'idioma que s'està convertint en el. 176 00:07:49,830 --> 00:07:50,230 >> ALI: Bé. 177 00:07:50,230 --> 00:07:52,920 I llavors, què és un assemblador? 178 00:07:52,920 --> 00:07:54,270 Algú? 179 00:07:54,270 --> 00:07:56,810 ALTAVEU 5: [inaudible] en binari? 180 00:07:56,810 --> 00:07:57,260 ALI: Em sap greu, què? 181 00:07:57,260 --> 00:07:58,760 ALTAVEU 5: [inaudible] en binari? 182 00:07:58,760 --> 00:07:59,260 ROB: Yep. 183 00:07:59,260 --> 00:07:59,880 ALI: Sí 184 00:07:59,880 --> 00:08:01,960 ROB: Així que l'assemblador - 185 00:08:01,960 --> 00:08:05,830 codi assemblador és molt, molt a prop del que el seu ordinador pot entendre, 186 00:08:05,830 --> 00:08:09,390 però recorda que no acaba d'entendre el text 187 00:08:09,390 --> 00:08:10,630 que és codi assemblador. 188 00:08:10,630 --> 00:08:14,570 Cal que el converteixen en 1s i 0s recta. 189 00:08:14,570 --> 00:08:17,000 És com un procés de traducció directa. 190 00:08:17,000 --> 00:08:19,450 Podríem donar-li una taula que assigna el que cada 191 00:08:19,450 --> 00:08:21,880 instruccions de muntatge significa. 192 00:08:21,880 --> 00:08:24,340 No obstant això, l'assemblador està fent això traducció per a vostè. 193 00:08:24,340 --> 00:08:28,790 S'està transformant el codi assemblador en 1s i 0s. 194 00:08:28,790 --> 00:08:30,870 >> ALI: I llavors, finalment, què és un connector? 195 00:08:30,870 --> 00:08:35,070 I com-lcs50 relacionar? 196 00:08:35,070 --> 00:08:37,010 Algú? 197 00:08:37,010 --> 00:08:41,440 ROB: Aquest és el més difícil i per explicat al vídeo un compilador. 198 00:08:41,440 --> 00:08:48,980 ALI: Algú recorda haver vist-lcs50 en una ordre? 199 00:08:48,980 --> 00:08:50,690 ALTAVEU 6: Quan vostè va anar a la marca. 200 00:08:50,690 --> 00:08:51,980 ALI: És en el fer. 201 00:08:51,980 --> 00:08:55,780 Sí, fresc i bé. 202 00:08:55,780 --> 00:09:02,024 Hi ha alguna idea o vagues - Sí, vaja. 203 00:09:02,024 --> 00:09:06,370 ALTAVEU 7: No estic segur, perquè el seu curt era realment [inaudible], però va ser 204 00:09:06,370 --> 00:09:12,244 alguna cosa sobre fer arxius separats amb cada biblioteca i després posar 205 00:09:12,244 --> 00:09:13,620 tots junts en una biblioteca? 206 00:09:13,620 --> 00:09:14,400 ROB: Si. 207 00:09:14,400 --> 00:09:23,000 Així que quan vostè té hello.c, és un programa molt simple. 208 00:09:23,000 --> 00:09:25,570 Realment estàs fent només una cosa en ell. 209 00:09:25,570 --> 00:09:27,400 Però quan et fiques en altres programes - 210 00:09:27,400 --> 00:09:31,700 i crec que fins i tot quan GetString en els seus programes, que necessita per començar 211 00:09:31,700 --> 00:09:33,830 incloent altres arxius. 212 00:09:33,830 --> 00:09:38,000 Així que la biblioteca CS50 és un fitxer on tenim les implementacions 213 00:09:38,000 --> 00:09:40,750 de GetString i getInt i totes aquestes coses. 214 00:09:40,750 --> 00:09:45,540 Així que el que l'enllaçador que fa és que va per aquí buscant a través de tots aquests 215 00:09:45,540 --> 00:09:49,400 arxius, veient on es defineixen les funcions, assegurant-se que quan dic 216 00:09:49,400 --> 00:09:52,440 GetString en algun lloc, sap que GetString significa que és el 217 00:09:52,440 --> 00:09:54,910 GetString més a la biblioteca CS50. 218 00:09:54,910 --> 00:09:58,895 Així que el vinculador només pren tots aquests arxius, trenca juntes, i ara 219 00:09:58,895 --> 00:10:01,020 Té un executable. 220 00:10:01,020 --> 00:10:05,600 Així que tingui en compte, si vostè està utilitzant la biblioteca CS50, cal tenir les 221 00:10:05,600 --> 00:10:10,370 # Include a la part superior, i després també en la comanda make, com 222 00:10:10,370 --> 00:10:12,630 Dit això, vostè ha de tenir la lcs50-. 223 00:10:12,630 --> 00:10:15,720 Així que no només pot tenir un. 224 00:10:15,720 --> 00:10:18,294 Així que això és una cosa a tenir en compte per a futures consultes. 225 00:10:18,294 --> 00:10:22,550 >> ALTAVEU 8: Per tant, direm que no hi havia una altra llibreria, com cs51.h, ens 226 00:10:22,550 --> 00:10:26,780 També cal afegir-lcs51? 227 00:10:26,780 --> 00:10:32,390 ROB: L'única raó-lcs50 funciona perfectament és perquè no tenim aquest conjunt 228 00:10:32,390 --> 00:10:35,800 en un lloc específic en els seus aparells perquè sàpiga què 229 00:10:35,800 --> 00:10:38,550 -Lcs50 mitjans. 230 00:10:38,550 --> 00:10:43,240 Podríem donar-li un arxiu cs50.c, i llavors vostè pot compilar, dient: 231 00:10:43,240 --> 00:10:49,050 Clang hello.c cs50.c, i llavors tindria el seu executable posant 232 00:10:49,050 --> 00:10:50,350 aquests dos arxius junts. 233 00:10:50,350 --> 00:10:56,520 Sap que-lcs50 significa cs50.c nou en algun directori que s'especifica al 234 00:10:56,520 --> 00:10:58,350 seus aparells. 235 00:10:58,350 --> 00:11:04,290 Així que si volia una cs51.c ser determinable per només dir-lcs51, 236 00:11:04,290 --> 00:11:06,760 llavors també hauria de posar-ho en aquest directori perquè sàpiga on 237 00:11:06,760 --> 00:11:08,636 buscar-la. 238 00:11:08,636 --> 00:11:10,510 ALI: Quina és la teva pregunta? 239 00:11:10,510 --> 00:11:13,975 >> ALTAVEU 7: Per què has de connectar el CS50 240 00:11:13,975 --> 00:11:18,940 si - no era de copiar / enganxar al primer pas quan es pre-processat? 241 00:11:18,940 --> 00:11:19,700 ALI: Vols prendre'l? 242 00:11:19,700 --> 00:11:20,880 ROB: Per descomptat. 243 00:11:20,880 --> 00:11:28,028 Així l'arxiu cs50.h està separat de la cs50.c arxiu C. 244 00:11:28,028 --> 00:11:33,652 Has arribat a funcionar prototips a classe? 245 00:11:33,652 --> 00:11:34,350 Bé. 246 00:11:34,350 --> 00:11:40,255 Així que, bàsicament, l'arxiu cs50.h és només va a copiar i enganxar - 247 00:11:40,255 --> 00:11:44,040 ALI: Vostès saben el que són les signatures? 248 00:11:44,040 --> 00:11:46,580 Bé, així que més o menys, si ens fixem en - 249 00:11:46,580 --> 00:11:50,530 ROB: Anem a fingir cs50.h no hi és. 250 00:11:50,530 --> 00:11:52,960 Ara aquest arxiu - 251 00:11:52,960 --> 00:11:56,090 que està fent GetString string s =. 252 00:11:56,090 --> 00:11:59,350 Però quan hem arribat a aquest punt en el codi, no té idea del que 253 00:11:59,350 --> 00:12:00,230 GetString és. 254 00:12:00,230 --> 00:12:02,600 Se sap que és una funció, ja que ho està trucant. 255 00:12:02,600 --> 00:12:06,500 Però no saben que en realitat ha de retornar una cadena. 256 00:12:06,500 --> 00:12:14,530 Així que, com he dit, string s = getInt, això no té cap sentit, ja que 257 00:12:14,530 --> 00:12:17,530 que està signant un sencer a una cadena. 258 00:12:17,530 --> 00:12:22,270 Però no sap que GetString té sentit, ja que no 259 00:12:22,270 --> 00:12:24,380 Sabem que GetString retorna una cadena. 260 00:12:24,380 --> 00:12:28,220 Així que el que diu és cs50.h alguna cosa com això. 261 00:12:33,070 --> 00:12:37,750 ALI: Així que el que Rob està escrivint és que és una promesa en la forma que es 262 00:12:37,750 --> 00:12:41,280 tenen aquesta funció anomenada GetString. 263 00:12:41,280 --> 00:12:45,250 ROB: Això és tot el que cs50.h és copiar i enganxar aquí, així 264 00:12:45,250 --> 00:12:47,620 com getInt i totes aquestes coses. 265 00:12:47,620 --> 00:12:51,520 I això només diu que GetString torna una cadena. 266 00:12:51,520 --> 00:12:54,830 No saps com està implementat encara, però quan vam arribar a aquesta línia, ara 267 00:12:54,830 --> 00:12:57,760 se sap que retorna correctament una cadena. 268 00:12:57,760 --> 00:13:03,022 >> ALTAVEU 9: Així que si no ens molestem amb la cosa # include i en el seu lloc 269 00:13:03,022 --> 00:13:07,130 acabo d'escriure el prototip dels que estem en realitat va a utilitzar? 270 00:13:07,130 --> 00:13:07,330 ROB: Si. 271 00:13:07,330 --> 00:13:08,870 Així que anem a executar aquest. 272 00:13:08,870 --> 00:13:09,110 ALTAVEU 9: Ho és? 273 00:13:09,110 --> 00:13:13,670 Així que, per defecte, ho faria el l-CS50 a només perquè -. 274 00:13:13,670 --> 00:13:14,740 ROB: - expressió. 275 00:13:14,740 --> 00:13:19,370 ALI: Sí, perquè com vostè ha dit, està a l'arxiu make. 276 00:13:19,370 --> 00:13:24,040 ROB: cs50.h també passa a ser * typedef char a string. 277 00:13:24,040 --> 00:13:26,950 Vostè pot ignorar el que això significa, per ara. 278 00:13:26,950 --> 00:13:31,430 Però això també és una cosa inclòs en cs50.h. 279 00:13:31,430 --> 00:13:34,230 Així que ara tot funcionava perfectament bé. 280 00:13:34,230 --> 00:13:40,770 Funciona exactament igual que ho va ser quan ens vam 281 00:13:40,770 --> 00:13:45,120 el # include. 282 00:13:45,120 --> 00:13:49,200 I així com cs50.h succeeix a un excés d'incloure coses que vostè necessita - 283 00:13:49,200 --> 00:13:53,080 com, ja no fa servir el getInt en aquest programa, però això no importa. 284 00:13:53,080 --> 00:13:55,010 És simplement l'ignoren. 285 00:13:55,010 --> 00:14:02,400 ALI: I després, quan fas el-lcs50 aquí i aquí, què està passant 286 00:14:02,400 --> 00:14:05,290 és que es tracta de tenir el codi implementable real. 287 00:14:05,290 --> 00:14:07,530 Així que aquí és on està realment, fent - 288 00:14:07,530 --> 00:14:09,090 escriure el codi per GetString. 289 00:14:09,090 --> 00:14:11,180 Així que no és només una promesa més. 290 00:14:11,180 --> 00:14:16,520 En realitat, és passant i prendre la corda i tot això. 291 00:14:16,520 --> 00:14:17,600 Té sentit? 292 00:14:17,600 --> 00:14:22,640 Preguntes? Està bé. 293 00:14:22,640 --> 00:14:24,466 Cool Beans. 294 00:14:24,466 --> 00:14:27,630 >> ROB: Ara podem passar a codi real. 295 00:14:27,630 --> 00:14:28,780 ALI: Bé. 296 00:14:28,780 --> 00:14:33,340 Així que aquí està el primer problema. 297 00:14:33,340 --> 00:14:36,910 Pel que diu escriure un programa que demana a l'usuari una minúscula 298 00:14:36,910 --> 00:14:40,540 lletra i després la converteix a majúscules sense utilitzar bitwise 299 00:14:40,540 --> 00:14:43,590 operacions, d'acord amb el resultat d'exemple a continuació. 300 00:14:43,590 --> 00:14:48,780 Així que vostè pot veure, s'executa el programa amb el. / A.out, i llavors estàs 301 00:14:48,780 --> 00:14:53,320 posarà en minúscula, a continuació, el programa ha de donar a conèixer el capital 302 00:14:53,320 --> 00:15:00,590 A. Per què no es van tots a donar-li un tret al CS50 Spaces? 303 00:15:00,590 --> 00:15:03,360 Així que vostès poden anar tots aquí. 304 00:15:03,360 --> 00:15:06,650 I vostè pot eliminar tot el codi aquí. 305 00:15:06,650 --> 00:15:12,140 I llavors vostè pot seguir endavant i començar a programar la cosa. 306 00:15:12,140 --> 00:15:14,590 ROB: Vostè probablement voldrà utilitzar GetChar, això és 307 00:15:14,590 --> 00:15:16,190 inclòs a la biblioteca CS50. 308 00:15:16,190 --> 00:15:18,770 ALI: Suposo que podria ser millor si es guarda la part superior. 309 00:15:21,452 --> 00:15:23,805 Així que potser voldreu canviar només les coses en el medi. 310 00:15:28,710 --> 00:15:29,070 Seguir endavant i treballar. 311 00:15:29,070 --> 00:15:30,530 Siéntase lliure per treballar amb altres. 312 00:15:30,530 --> 00:15:32,360 Rob: I vostè pot fer preguntes si vostè té - 313 00:15:32,360 --> 00:15:33,450 >> ALTAVEU 10: Què és una operació bit a bit? 314 00:15:33,450 --> 00:15:35,100 ROB: Llavors, passar per alt que per aquest problema. 315 00:15:35,100 --> 00:15:36,330 ALI: Si no ho sap, això és bo. 316 00:15:36,330 --> 00:15:38,300 ROB: Nosaltres el farem servir en el següent problema. 317 00:15:38,300 --> 00:15:40,750 Però si vostè no sap el que és un operador de bits és, això està bé. 318 00:15:40,750 --> 00:15:43,575 ALTAVEU 10: És com convertir a codi ASCII? 319 00:15:43,575 --> 00:15:44,050 ALI: No 320 00:15:44,050 --> 00:15:44,750 ROB: No 321 00:15:44,750 --> 00:15:46,220 Vostè pot fer això per aquest problema. 322 00:15:46,220 --> 00:15:48,280 ALTAVEU 10: Com es fa això? 323 00:15:48,280 --> 00:15:52,460 Així que si jo tingués un lloc per escriure - 324 00:15:52,460 --> 00:15:54,670 ALI: O alguna cosa amb què escriure. 325 00:15:54,670 --> 00:15:56,780 ROB: Podria només una mica en aquest tipus. 326 00:15:56,780 --> 00:15:59,045 ALI: Escriviu a la part superior. 327 00:15:59,045 --> 00:16:01,390 ROB: Oh, estic assegut en un micròfon. 328 00:16:01,390 --> 00:16:10,860 >> Així, hem vist en la conferència que el valor ASCII d'A majúscula és 65. 329 00:16:10,860 --> 00:16:13,670 I el capital B serà 66, i així successivament. 330 00:16:13,670 --> 00:16:20,860 Així que, literalment, pot fer servir 'A' en el sentit del número 65. 331 00:16:20,860 --> 00:16:24,600 Igual, aquest és el valor 65. 332 00:16:24,600 --> 00:16:30,950 Puc fer alguna cosa com int x = 100 - 'A'. I ara, x té el valor 333 00:16:30,950 --> 00:16:33,810 100-65. 334 00:16:33,810 --> 00:16:36,708 ALI: Pot executar i mostrar que això. 335 00:16:36,708 --> 00:16:38,420 Oh, potser no. 336 00:16:38,420 --> 00:16:38,600 No importa. 337 00:16:38,600 --> 00:16:40,970 ROB: vaig haver imprimir. 338 00:16:40,970 --> 00:16:43,730 ALTAVEU 10: Com es torni a personatge? 339 00:16:43,730 --> 00:16:46,800 ALI: Així que si no - 340 00:16:46,800 --> 00:16:51,450 que acaba de forçar que sigui un char, és igual. 341 00:16:51,450 --> 00:16:53,630 ROB: Així que hi ha una - 342 00:16:53,630 --> 00:16:58,440 la distinció entre un caràcter i un enter és només en termes de mida. 343 00:16:58,440 --> 00:17:01,230 Així que un nombre sencer passa a ser capaços de representar les coses 344 00:17:01,230 --> 00:17:02,600 a, com, quatre mil milions. 345 00:17:02,600 --> 00:17:05,839 Un char només és capaç de representar les coses fins a 255. 346 00:17:05,839 --> 00:17:08,390 Però no hi ha cap diferència entre ells diferent d'aquest. 347 00:17:08,390 --> 00:17:12,339 Així que pots dir char c = 65. 348 00:17:12,339 --> 00:17:24,204 Això és equivalent a dir char c és igual a 'A'. 349 00:17:24,204 --> 00:17:25,210 ALI: Oh, no. 350 00:17:25,210 --> 00:17:26,710 En realitat, no guardar coses. 351 00:17:26,710 --> 00:17:28,130 ROB: No, vostè no pot fer això. 352 00:17:28,130 --> 00:17:31,610 ALI: Això és just - 353 00:17:31,610 --> 00:17:34,920 [Gemecs] 354 00:17:34,920 --> 00:17:40,700 >> ROB: Està bé, així que el que acabo d'escriure Ali era un programa que primer imprimeix 100 - 355 00:17:40,700 --> 00:17:46,290 'A' com un enter, que tenia 35 anys, com esperem, perquè 100 menys l'ASCII 356 00:17:46,290 --> 00:17:48,580 valor de A és 65. 357 00:17:48,580 --> 00:17:54,100 Després s'imprimeixen mitjançant% c, el que significa que la interpreten com un char. 358 00:17:54,100 --> 00:17:57,050 Així 100 - una és de 35. 359 00:17:57,050 --> 00:18:00,990 Interpretar a un personatge que, com resulta ser el símbol de hash. 360 00:18:00,990 --> 00:18:06,160 Si ens fixem en asciitable.com o el que sigui, veuràs que el 35 és el 361 00:18:06,160 --> 00:18:07,410 símbol de hash. 362 00:18:09,940 --> 00:18:12,700 ALI: Bé, qualsevol aclariment sobre l'altre problema? 363 00:18:16,000 --> 00:18:18,180 Bé, vostès poden anar endavant i fer-ho llavors. 364 00:18:18,180 --> 00:18:20,330 No dubti en fer preguntes o parlar entre si. 365 00:18:20,330 --> 00:18:24,390 O si ja està fet, vostè pot relaxar-se. 366 00:18:24,390 --> 00:18:29,640 >> LUCAS: Són la mateixa classe, totes les lletres minúscules en ordre i 367 00:18:29,640 --> 00:18:32,923 també les majúscules també es troben en ordre, perquè això és una cosa útil per 368 00:18:32,923 --> 00:18:33,990 el problema. 369 00:18:33,990 --> 00:18:35,620 ALI: Bon punt, Lluc. 370 00:18:35,620 --> 00:18:37,430 Llavors, ¿vostès tot això? 371 00:18:37,430 --> 00:18:37,640 ALTAVEU 11: Sí 372 00:18:37,640 --> 00:18:39,535 Així és com ho fas, oi? 373 00:18:39,535 --> 00:18:39,960 ALI: Així és. 374 00:18:39,960 --> 00:18:40,415 ROB: Si. 375 00:18:40,415 --> 00:18:47,270 ALTAVEU 11: [inaudible] 376 00:18:47,270 --> 00:18:48,330 ALI: Bé. 377 00:18:48,330 --> 00:18:49,350 ROB: Quina és la pregunta que demana? 378 00:18:49,350 --> 00:18:50,590 Només per convertir - 379 00:18:50,590 --> 00:18:52,560 ALI: Convertir les minúscules a la majúscula. 380 00:18:52,560 --> 00:18:53,100 Això és tot. 381 00:18:53,100 --> 00:18:54,700 ROB: Molt bé. 382 00:18:54,700 --> 00:18:56,180 ALI: Cal escriure? 383 00:18:56,180 --> 00:18:59,340 Suposo que només haurem de mirar d'una altra persona. 384 00:18:59,340 --> 00:19:07,140 ROB: Així que per a aquells que puguin estar encallat, una manera - 385 00:19:07,140 --> 00:19:15,160 si tinc algun char c, i dir que anem a passa a ser la lletra D. 386 00:19:15,160 --> 00:19:20,760 Així que ara, com puc esbrinar quina lletra de l'alfabet és C? 387 00:19:20,760 --> 00:19:25,620 D No, però vull dir, D passa a ser la quarta lletra de l'alfabet. 388 00:19:25,620 --> 00:19:28,910 I si comencem a comptar des de 0, que és la tercera lletra de l'alfabet. 389 00:19:28,910 --> 00:19:36,240 Així que si A és 0 i B és 1, C és 2, D 3, com puc esbrinar la posició int - 390 00:19:36,240 --> 00:19:40,780 quina és la posició de l'alfabet C és a? 391 00:19:40,780 --> 00:19:42,333 Algú té alguna idea? 392 00:19:42,333 --> 00:19:45,440 ALI: Crec que tots estem de codificació. 393 00:19:45,440 --> 00:19:46,440 ROB: Què passa amb la primera? 394 00:19:46,440 --> 00:19:48,608 ALTAVEU 12: Així que el que A és, restar la primera? 395 00:19:48,608 --> 00:19:49,030 ROB: Si. 396 00:19:49,030 --> 00:19:49,950 ALI: Sí, impressionant. 397 00:19:49,950 --> 00:19:51,765 Pel que podria fer el capital D - 398 00:19:51,765 --> 00:19:52,840 oh, ho sento. 399 00:19:52,840 --> 00:19:55,620 Vostè pren el caràcter i es resta de la primera, com vostè ha dit. 400 00:19:55,620 --> 00:20:03,940 ROB: Llavors, si D és una cosa així com 68, i restem A, que és de 65, llavors obtenim 401 00:20:03,940 --> 00:20:07,130 3, que ens diu que D és la tercera lletra de l'alfabet 402 00:20:07,130 --> 00:20:09,290 a partir de 0. 403 00:20:09,290 --> 00:20:11,310 Així que vostè pot utilitzar això. 404 00:20:11,310 --> 00:20:13,830 Ara sabem quina lletra de l'alfabet, en termes de 405 00:20:13,830 --> 00:20:16,060 lletres majúscules, o - 406 00:20:16,060 --> 00:20:18,330 podríem fer el mateix amb les lletres minúscules per esbrinar què 407 00:20:18,330 --> 00:20:20,170 minúscules posició que estem ficats 408 00:20:20,170 --> 00:20:25,690 I podem usar això per convertir majúscules després que utilitza un 409 00:20:25,690 --> 00:20:26,970 idea molt similar. 410 00:20:31,470 --> 00:20:32,670 Demani suggeriments? 411 00:20:32,670 --> 00:20:35,810 >> ALI: Vostès - espera, no sé fins a quin punt vostès són. 412 00:20:35,810 --> 00:20:40,060 La majoria dels que has fet, segueixes treballant, està encallat? 413 00:20:40,060 --> 00:20:42,020 Vostès poden cridar - 414 00:20:42,020 --> 00:20:42,330 encallat. 415 00:20:42,330 --> 00:20:43,210 Una persona ha encallat. 416 00:20:43,210 --> 00:20:43,560 Cool. 417 00:20:43,560 --> 00:20:44,700 Tendeixo a ser atrapat, també. 418 00:20:44,700 --> 00:20:45,415 ALTAVEU 13: He acabat. 419 00:20:45,415 --> 00:20:46,410 ALI: Ja està? 420 00:20:46,410 --> 00:20:47,480 Bé. 421 00:20:47,480 --> 00:20:47,935 Fet. 422 00:20:47,935 --> 00:20:49,300 ALTAVEU 13: [inaudible] 423 00:20:49,300 --> 00:20:50,600 ALI: Sí, bé. 424 00:20:50,600 --> 00:20:53,720 Està vostè de comprovar que està en forma minúscula? 425 00:20:53,720 --> 00:20:56,730 D'acord, genial. 426 00:20:56,730 --> 00:20:59,882 On són els altres? 427 00:20:59,882 --> 00:21:06,140 ¿Aquesta pista t'ajudi, com per a si mateix sense enganxar? 428 00:21:06,140 --> 00:21:09,778 ALTAVEU 14: En realitat no, però només perquè, no sé, no estic 429 00:21:09,778 --> 00:21:11,590 digerint encara. 430 00:21:11,590 --> 00:21:12,640 ALI: Bé, genial. 431 00:21:12,640 --> 00:21:13,431 Vols provar - 432 00:21:13,431 --> 00:21:16,140 o vols anar a parlar? 433 00:21:16,140 --> 00:21:18,590 >> ROB: El que havia de dir és - 434 00:21:18,590 --> 00:21:19,890 pel que usar això. 435 00:21:19,890 --> 00:21:22,650 ¿Entén vostè com arribem quina és la posició de l'alfabet 436 00:21:22,650 --> 00:21:24,820 la lletra és en? 437 00:21:24,820 --> 00:21:30,616 ALTAVEU 14: D'acord, així que quan vostè posa les coses en una sola cita, 438 00:21:30,616 --> 00:21:35,030 que retorna un nombre? 439 00:21:35,030 --> 00:21:37,100 ROB: Si. 440 00:21:37,100 --> 00:21:40,840 Es traduirà al valor ASCII que representa. 441 00:21:40,840 --> 00:21:43,350 Llavors, vols anar a la taula ASCII o el que sigui? 442 00:21:46,456 --> 00:21:47,840 ALI: Només un d'aquests? 443 00:21:47,840 --> 00:21:49,970 ROB: Yep. 444 00:21:49,970 --> 00:21:55,270 Així que quan vostè posa algun d'aquests símbols, fent cas omís d'una gran part de la - 445 00:21:55,270 --> 00:21:56,450 ALI: [inaudible] 446 00:21:56,450 --> 00:21:57,620 ROB: Oh, utilitzant el cursor. 447 00:21:57,620 --> 00:21:58,380 ALI: Si. 448 00:21:58,380 --> 00:21:59,690 Això va ser emocionant. 449 00:21:59,690 --> 00:22:04,050 ROB: Així que, fent cas omís d'aquests els de l'esquerra, que són símbols especials - 450 00:22:04,050 --> 00:22:08,520 si poses qualsevol d'aquests símbols entre cometes simples, llavors serà 451 00:22:08,520 --> 00:22:11,620 converteixen a aquest valor de l'esquerra. 452 00:22:11,620 --> 00:22:13,660 ALI: Això és el nombre decimal de la mateixa. 453 00:22:13,660 --> 00:22:19,710 És com un partits amb 65, B 66, i t'adonaràs que tots estan en 454 00:22:19,710 --> 00:22:21,540 ordre alfabètic, el que fa la diferència. 455 00:22:21,540 --> 00:22:27,110 Així que, com diu Rob, abans, en aquest codi, estàvem calculant la distància de 456 00:22:27,110 --> 00:22:29,610 la primera lletra, per se. 457 00:22:29,610 --> 00:22:32,820 I això serà la mateixa, ja sigui en majúscules o minúscules. 458 00:22:32,820 --> 00:22:38,390 ROB: Així que quan vam D, 68 menys un 65,, obtenim 3. 459 00:22:38,390 --> 00:22:42,370 Com que D és de tres posicions en l'alfabet. 460 00:22:42,370 --> 00:22:46,680 ALI: Llavors, com es tradueix això a trobar el poc d? 461 00:22:46,680 --> 00:22:47,240 ROB: Si. 462 00:22:47,240 --> 00:22:52,230 Així que si tinc 3 ara, sé que vull anar tres lletres al - 463 00:22:52,230 --> 00:22:54,830 ens ha tocat anar en minúscules ara, però direm que vull anar tres 464 00:22:54,830 --> 00:22:58,610 posicions en la part minúscula de les coses. 465 00:22:58,610 --> 00:23:01,400 Llavors, com puc fer això? 466 00:23:01,400 --> 00:23:04,240 Sé que és una minúscula 97. 467 00:23:04,240 --> 00:23:07,535 Llavors, com puc trobar tres posicions en les lletres minúscules? 468 00:23:10,461 --> 00:23:11,934 >> ALTAVEU 15: Tinc una pregunta en realitat. 469 00:23:11,934 --> 00:23:12,425 ALI: Sí, endavant. 470 00:23:12,425 --> 00:23:14,880 ALTAVEU 15: Així que per això, en realitat no importa si conec a aquesta posició, 471 00:23:14,880 --> 00:23:16,360 agrada, jo no necessito aquesta taula. 472 00:23:16,360 --> 00:23:16,840 ROB: Nope. 473 00:23:16,840 --> 00:23:19,380 Vostè mai haurà d'utilitzar qualsevol d'aquests nombres. 474 00:23:19,380 --> 00:23:23,670 I aquest és un punt important en els seus programes que vostè mai hauria dur 475 00:23:23,670 --> 00:23:25,500 codificar qualsevol d'aquestes constants. 476 00:23:25,500 --> 00:23:31,190 Useu 'A'. mai utilitzeu 65 o 97. 477 00:23:31,190 --> 00:23:34,370 ALI: Es diuen nombres màgics, i són realment confús. 478 00:23:34,370 --> 00:23:37,080 Igual que, quan s'està depurant un codi, és possible que no recordi el 479 00:23:37,080 --> 00:23:38,020 vostè els utilitza. 480 00:23:38,020 --> 00:23:40,770 I per a nosaltres classificació del seu codi, no sabrà realment el que 481 00:23:40,770 --> 00:23:41,750 vostè els està utilitzant per. 482 00:23:41,750 --> 00:23:44,815 Així que és millor si vostè utilitza realment els personatges pel que té 483 00:23:44,815 --> 00:23:46,065 més sentit per les persones. 484 00:23:49,460 --> 00:23:51,160 Bé, més preguntes? 485 00:23:51,160 --> 00:23:52,975 Hi ha més gent fa, o - 486 00:23:56,243 --> 00:23:57,493 Suposo que es pot comprovar. 487 00:23:59,870 --> 00:24:02,410 És realment esgarrifós que vostè pot veure la gent. 488 00:24:02,410 --> 00:24:04,970 ROB: Si. 489 00:24:04,970 --> 00:24:06,410 Nosaltres no hem de fer això aquí. 490 00:24:06,410 --> 00:24:08,380 No sabem els noms de les persones, tampoc. 491 00:24:08,380 --> 00:24:10,940 ALI: Ah, sí, bé, això ho fa millor, així que serem encara més imparcial 492 00:24:10,940 --> 00:24:14,820 en comptes d'escollir a l'atzar a algú. 493 00:24:14,820 --> 00:24:15,360 No es preocupi. 494 00:24:15,360 --> 00:24:16,265 No ho faré. 495 00:24:16,265 --> 00:24:20,396 Si vostè té les coses a l'atzar sobre - És igual. 496 00:24:20,396 --> 00:24:20,870 Bé. 497 00:24:20,870 --> 00:24:22,556 Què fan les persones? 498 00:24:22,556 --> 00:24:26,950 >> ALTAVEU 17: Així que la novena línia d'imprimir un personatge? 499 00:24:26,950 --> 00:24:27,430 ROB: Si. 500 00:24:27,430 --> 00:24:27,910 ALI: Si. 501 00:24:27,910 --> 00:24:30,770 Així que si vostè va avall - 502 00:24:30,770 --> 00:24:32,200 ROB: Oh, no puc fer això. 503 00:24:32,200 --> 00:24:35,400 ALI: Vostè veurà que imprimeix el símbol de hash. 504 00:24:35,400 --> 00:24:37,180 ALTAVEU 17: Oh, està bé. 505 00:24:37,180 --> 00:24:41,290 ROB: Suposo que d'altra manera es pot veure les coses és que estem imprimint 02:00 506 00:24:41,290 --> 00:24:42,540 personatges. 507 00:24:44,500 --> 00:24:47,740 Primer que estem imprimint és la lletra A. 508 00:24:47,740 --> 00:24:51,610 La següent és la impressió que estem a només 65. 509 00:24:51,610 --> 00:24:54,450 Probablement vaig a cridar a mi per aquests. 510 00:24:54,450 --> 00:25:00,060 Així que si en tenim prou amb executar això, t'adonaràs que s'imprimeixi De vegades ambdós. 511 00:25:00,060 --> 00:25:02,070 Perquè ho estem preguntant el mateix. 512 00:25:02,070 --> 00:25:07,840 Ho estem demanant per imprimir la lletra A. I llavors li demanem que s'imprimeixi el 513 00:25:07,840 --> 00:25:13,820 número 65 interpreta com un caràcter, que és la mateixa cosa. 514 00:25:13,820 --> 00:25:15,100 ALI: Tens alguna cosa a dir? 515 00:25:15,100 --> 00:25:18,150 Oh, és broma, ho sento. 516 00:25:18,150 --> 00:25:20,640 Molt bé, com són les persones - 517 00:25:20,640 --> 00:25:22,280 ROB: Es pot caminar a través d'ell. 518 00:25:22,280 --> 00:25:25,250 >> ALI: Bé, com començar? 519 00:25:25,250 --> 00:25:26,500 Algú? 520 00:25:28,030 --> 00:25:34,486 Com a suggeriment, hem d'aconseguir una mica de les persones, dels typers. 521 00:25:34,486 --> 00:25:36,850 ALTAVEU 18: [inaudible] 522 00:25:36,850 --> 00:25:38,290 ALI: Ah, sí, un perfecte sistema,. 523 00:25:38,290 --> 00:25:40,660 Així que anem a escriure - 524 00:25:40,660 --> 00:25:41,670 Quin tipus? 525 00:25:41,670 --> 00:25:43,660 Algú? 526 00:25:43,660 --> 00:25:46,480 O he de escriure? 527 00:25:46,480 --> 00:25:47,530 Estem realment escrivint el - 528 00:25:47,530 --> 00:25:48,430 ROB: Per descomptat. 529 00:25:48,430 --> 00:25:50,990 ALI: Així que anem a escriure un printf per estimular, perquè puguem ser 530 00:25:50,990 --> 00:25:54,810 agrada, em donen un caràcter. 531 00:25:54,810 --> 00:25:55,710 Bé, i llavors què? 532 00:25:55,710 --> 00:25:56,664 Per què està fent això? 533 00:25:56,664 --> 00:25:57,620 ROB: No ho sé. 534 00:25:57,620 --> 00:26:00,070 ALI: Bé. 535 00:26:00,070 --> 00:26:03,680 Així que ara, els estem dient que ens doni un caràcter. 536 00:26:03,680 --> 00:26:07,064 Però llavors, ¿com s'aconsegueix realment aquest personatge? 537 00:26:07,064 --> 00:26:10,060 ALTAVEU 19: GetString ús. 538 00:26:10,060 --> 00:26:12,040 ALI: GetString? 539 00:26:12,040 --> 00:26:12,850 GetChar? 540 00:26:12,850 --> 00:26:17,038 Bé, quina és la diferència entre una cadena i una xerrada? 541 00:26:17,038 --> 00:26:20,020 ALTAVEU 19: Les cadenes són una sèrie, com un conjunt de caràcters. 542 00:26:20,020 --> 00:26:21,910 >> ALI: Cool, sí. 543 00:26:21,910 --> 00:26:25,550 Així que en aquest problema, només hem de considerar un caràcter alhora, de manera que 544 00:26:25,550 --> 00:26:28,400 només farem GetChar per aquesta instància. 545 00:26:28,400 --> 00:26:32,400 ROB: Podríem implementar una funció que si volíem que va tenir una cadena completa 546 00:26:32,400 --> 00:26:35,750 i va ser la cadena i va canviar tot en minúscules a majúscules i tot 547 00:26:35,750 --> 00:26:37,380 majúscules a minúscules. 548 00:26:37,380 --> 00:26:39,170 Però aquí, només demanem un caràcter. 549 00:26:39,170 --> 00:26:42,800 ALI: Així que ara tenim el caràcter aquí, però llavors hem de guardar. 550 00:26:42,800 --> 00:26:45,070 Així que anem a afegir char c - què? 551 00:26:45,070 --> 00:26:46,070 ALTAVEU 20: Definiu la variable. 552 00:26:46,070 --> 00:26:48,100 ALI: Sí, exactament. 553 00:26:48,100 --> 00:26:49,585 Així que tenim el nostre caràcter. 554 00:26:49,585 --> 00:26:51,766 ROB: Crec que podria ser - 555 00:26:51,766 --> 00:26:55,630 que és a tres espais, de manera que està cridant a vostè. 556 00:26:55,630 --> 00:27:01,300 >> ALI: Bé, cool, ara que hem tabulació conjunt, què passa després? 557 00:27:01,300 --> 00:27:02,550 Quin és el següent pas? 558 00:27:05,590 --> 00:27:08,870 ROB: El que el nostre programa ha de fer és canviar una lletra minúscula per a una 559 00:27:08,870 --> 00:27:10,130 lletra majúscula. 560 00:27:10,130 --> 00:27:15,478 Què passa si se m'acut per introduir el símbol hash? 561 00:27:15,478 --> 00:27:16,314 És que - 562 00:27:16,314 --> 00:27:16,732 ALI: És un bon símbol. 563 00:27:16,732 --> 00:27:18,270 Nosaltres fem servir molt. 564 00:27:18,270 --> 00:27:21,937 ROB: Això és vàlid que es pot convertir en una forma majúscula? 565 00:27:21,937 --> 00:27:23,070 ALTAVEU 21: No 566 00:27:23,070 --> 00:27:24,070 ALI: No 567 00:27:24,070 --> 00:27:24,900 Hem de comprovar que. 568 00:27:24,900 --> 00:27:34,950 Així que podem tenir una sentència if comprovant així que si el c és més gran que 569 00:27:34,950 --> 00:27:37,410 o igual a a'la minúscula '- 570 00:27:37,410 --> 00:27:45,490 pel que si ens fixem en el gràfic, t'adonaràs que ha de ser d'aquí, 571 00:27:45,490 --> 00:27:47,670 a 97, i la minúscula. 572 00:27:47,670 --> 00:27:52,110 I pot ser qualsevol d'aquests, i en increments baix tot el camí. 573 00:27:52,110 --> 00:27:55,200 I després hi ha z en 122. 574 00:27:55,200 --> 00:27:58,215 I ha de cauen entre aquests dos valors. 575 00:27:58,215 --> 00:27:59,700 Això té sentit? 576 00:27:59,700 --> 00:28:04,130 ROB: Així que si c no és entre 97 i 122 - 577 00:28:04,130 --> 00:28:09,960 o que mai hauria d'haver de fer servir aquests números - si c no és entre 'a' i 578 00:28:09,960 --> 00:28:15,110 'Z', llavors no era un caràcter vàlid per a nosaltres en majúscules. 579 00:28:15,110 --> 00:28:18,590 ALI: Així que, en forma de codi, es diu que si c és major o igual a un sol 580 00:28:18,590 --> 00:28:19,640 en minúscules - 581 00:28:19,640 --> 00:28:21,270 wow, com pots dir això? 582 00:28:21,270 --> 00:28:26,900 D'acord, és major o igual a "a" minúscula, i ha d'estar per sobre 583 00:28:26,900 --> 00:28:32,250 la minúscula 'z'. Així que ha de ser menor o igual a minúscules 'z'. 584 00:28:32,250 --> 00:28:35,300 Ens estem assegurant que és entre els dos. 585 00:28:35,300 --> 00:28:38,540 Llavors podem continuar amb el nostre codi feliç. 586 00:28:41,992 --> 00:28:43,360 Què? 587 00:28:43,360 --> 00:28:46,860 ROB: Així que vaig pensar que només podria seguir preguntant, si resulta que no tenen un 588 00:28:46,860 --> 00:28:48,250 lletra minúscula. 589 00:28:48,250 --> 00:28:51,130 ALI: Oh, jo no era conscient. 590 00:28:51,130 --> 00:28:52,820 Em sap greu. 591 00:28:52,820 --> 00:28:58,100 >> Molt bé, així que si anem a fer el que diu Rob, i assegureu-vos que - 592 00:28:58,100 --> 00:29:02,068 podem seguir fent ells, llavors què hem de fer? 593 00:29:02,068 --> 00:29:02,994 ALTAVEU 22: [inaudible] 594 00:29:02,994 --> 00:29:03,530 ROB: Si. 595 00:29:03,530 --> 00:29:05,630 Hem d'utilitzar algun tipus de bucle. 596 00:29:05,630 --> 00:29:12,900 Com que l'usuari pot introduir alguna cosa invàlid una quantitat incalculable de vegades. 597 00:29:12,900 --> 00:29:14,990 Així que vostè pot utilitzar un bucle while. 598 00:29:14,990 --> 00:29:18,870 El propòsit d'un bucle do-while - 599 00:29:18,870 --> 00:29:21,340 literalment, l'única vegada en les seves vides que haurà d'utilitzar docu- 600 00:29:21,340 --> 00:29:24,780 bucles while és quan vostè està demanant la entrada de l'usuari. 601 00:29:24,780 --> 00:29:28,260 Així que el fet que estem demanant l'entrada de l'usuari que aquí hi ha una insinuació que hauríem 602 00:29:28,260 --> 00:29:29,660 utilitzar un bucle do-while. 603 00:29:29,660 --> 00:29:30,780 I per què és això? 604 00:29:30,780 --> 00:29:34,270 A causa de do-while sempre passa almenys una vegada. 605 00:29:34,270 --> 00:29:40,260 Així que quan vostè està demanant la entrada de l'usuari, que desitja que això passi, almenys una vegada. 606 00:29:40,260 --> 00:29:42,750 I si les coses fossin correctament, pot seguir endavant. 607 00:29:42,750 --> 00:29:45,130 Si no és així, torna a preguntar de nou. 608 00:29:45,130 --> 00:29:48,950 >> ALI: En altres paraules, hem de veure secció. 609 00:29:48,950 --> 00:29:51,130 I així, aquest està dient que faci alguna cosa. 610 00:29:51,130 --> 00:29:53,890 Així printf - 611 00:29:53,890 --> 00:29:57,490 imprimir la declaració, ràpid, i també un caràcter, o l'intent de 612 00:29:57,490 --> 00:29:58,780 aconseguir un personatge. 613 00:29:58,780 --> 00:30:03,410 I després hem de comprovar si en realitat ho va fer correctament. 614 00:30:03,410 --> 00:30:07,730 Llavors afegim les condicions, llavors diem estona, i llavors tenim la 615 00:30:07,730 --> 00:30:08,980 sentència condicional. 616 00:30:11,600 --> 00:30:14,730 ROB: Però ara que hem revocat la línia de pensament. 617 00:30:14,730 --> 00:30:18,940 Ara que originalment estaven dient si c és en aquest rang, és vàlid. 618 00:30:18,940 --> 00:30:23,340 Ara volem revertir això i dir si c no està en aquest rang, llavors 619 00:30:23,340 --> 00:30:25,020 necessitat de tornar a fer les coses de nou. 620 00:30:25,020 --> 00:30:25,900 ALI: Oh, sí. 621 00:30:25,900 --> 00:30:31,720 Rob: Així, mentre que això no és cert, volem tornar enrere i 622 00:30:31,720 --> 00:30:34,470 demanar un altre personatge. 623 00:30:34,470 --> 00:30:36,880 Tothom veu això? 624 00:30:36,880 --> 00:30:38,830 Les preguntes sobre això? 625 00:30:38,830 --> 00:30:39,400 Bé. 626 00:30:39,400 --> 00:30:43,480 >> Així que ara tenim un caràcter vàlid que podem majúscules. 627 00:30:43,480 --> 00:30:47,150 ALI: Llavors quin és el següent pas per les majúscules ella? 628 00:30:49,994 --> 00:30:51,890 ALTAVEU 23: Afegir 32. 629 00:30:51,890 --> 00:30:52,600 ALI: Agrega - 630 00:30:52,600 --> 00:30:54,150 Perdó, què? 631 00:30:54,150 --> 00:30:56,580 ALTAVEU 23: No pots afegir 32? 632 00:30:56,580 --> 00:31:02,360 ROB: Així que sí, no en termes de nombres màgics. 633 00:31:02,360 --> 00:31:04,610 Només s'ha d'utilitzar cometes simples coses. 634 00:31:04,610 --> 00:31:06,450 ALTAVEU 23: Bé, bé - 635 00:31:06,450 --> 00:31:07,250 ROB: Però vostè pot obtenir 32 - 636 00:31:07,250 --> 00:31:11,870 ALI: Com vas aconseguir el nombre 32, crec, és el que estem dient. 637 00:31:11,870 --> 00:31:18,060 ALTAVEU 23: [inaudible] 638 00:31:18,060 --> 00:31:22,158 ROB: Així que podem arribar amb el número 32 al costat - 639 00:31:22,158 --> 00:31:24,468 ALTAVEU 23: [inaudible]? 640 00:31:24,468 --> 00:31:24,930 ROB: Si. 641 00:31:24,930 --> 00:31:28,540 Però si anem a fer-ho en els dos passos que vam fer abans amb 642 00:31:28,540 --> 00:31:29,950 la matèria posició. 643 00:31:29,950 --> 00:31:36,910 Així que la posició en l'alfabet que passa a ser c és c menys minúscules 644 00:31:36,910 --> 00:31:42,360 'A'. Així que si entrem en una minúscula 'd', ja que serà 3. 645 00:31:42,360 --> 00:31:46,490 I ara volem portar les coses a l'abast majúscules de les coses. 646 00:31:46,490 --> 00:31:55,376 Així que ara el nostre nou c serà la 'A' majúscula posició plus. 647 00:31:55,376 --> 00:32:00,090 Llavors, com la gent veu que ens porta - 648 00:32:00,090 --> 00:32:04,140 ens estem movent de la gamma minúscules, la profunditat exacta en què estàvem 649 00:32:04,140 --> 00:32:07,650 rang, i baixar al rang de majúscules, i va tan lluny 650 00:32:07,650 --> 00:32:10,610 -hi de nou, que serà el mateix caràcter, però ara 651 00:32:10,610 --> 00:32:12,550 uppercased. 652 00:32:12,550 --> 00:32:16,490 ALI: I per les persones que estaven confosos per la manera com ell acaba de dir 32, 653 00:32:16,490 --> 00:32:20,390 bàsicament, combinar ambdós en un comunicat. 654 00:32:20,390 --> 00:32:24,550 Així que una manera equivalent a escriure això per dir que pot sol tipus de 655 00:32:24,550 --> 00:32:28,190 lloc de substitut, el c menys 'a,' i el va posar aquí. 656 00:32:28,190 --> 00:32:31,330 Així que el que vaig fer, jo no - 657 00:32:31,330 --> 00:32:44,510 majúscules newc = 'A' més c menys minúscula 'a'. I a causa d'àlgebra, 658 00:32:44,510 --> 00:32:47,090 Vostè pot moure. 659 00:32:47,090 --> 00:32:52,960 També es pot dir que es pot moure al voltant per caràcters en majúscula newc = 'A' 660 00:32:52,960 --> 00:32:55,620 menys minúscula 'a' plus c. 661 00:32:55,620 --> 00:32:58,650 I això, t'adonaràs si ens remuntem a la carta. 662 00:33:01,160 --> 00:33:06,300 Comptem amb majúscula A és 65 i un minúscul és 97. 663 00:33:06,300 --> 00:33:09,800 Per tant 65-97 és -32. 664 00:33:09,800 --> 00:33:10,020 >> Hi. 665 00:33:10,020 --> 00:33:10,930 Presa seient. 666 00:33:10,930 --> 00:33:12,180 Oh. 667 00:33:16,240 --> 00:33:17,980 Vostè pot seure aquí. 668 00:33:17,980 --> 00:33:20,805 Genial, bé, impressionant. 669 00:33:20,805 --> 00:33:22,390 Benvinguts a la secció. 670 00:33:22,390 --> 00:33:25,110 Es donarà compte de que la diferència és de 32. 671 00:33:25,110 --> 00:33:28,150 Així que aquí és on ell va aconseguir aquest nombre. 672 00:33:28,150 --> 00:33:32,140 Però no ho és, com diu Rob, la millor manera de fer-ho, ja que té l'estranya 673 00:33:32,140 --> 00:33:35,260 confusió nombre màgic. 674 00:33:35,260 --> 00:33:38,710 ROB: Vostè ha d'usar majúscula a minúscula menys. 675 00:33:38,710 --> 00:33:43,045 No ha d'usar només directament 32. 676 00:33:43,045 --> 00:33:45,020 ALTAVEU 24: Per què, de nou? 677 00:33:45,020 --> 00:33:49,860 Per què no hauríeu d'utilitzar 32? 678 00:33:49,860 --> 00:33:55,630 ALI: Si ho aconseguim, seria caràcters newc = -32 + c. 679 00:33:55,630 --> 00:34:00,030 I si vostè no veu cap de les altres, si tot això s'ha anat, i vostè 680 00:34:00,030 --> 00:34:04,720 només veure aquesta línia, llavors, com saber quin és el negatiu 32 està? 681 00:34:04,720 --> 00:34:07,000 És simplement fora de lloc. 682 00:34:07,000 --> 00:34:10,360 ROB: Així que el seu programa podria funcionar completament bé. 683 00:34:10,360 --> 00:34:12,960 És només una cosa estil. 684 00:34:12,960 --> 00:34:17,760 Algú que entra i la lectura del seu codi, són com 32, què significa? 685 00:34:17,760 --> 00:34:18,889 Potser no - 686 00:34:18,889 --> 00:34:22,090 Probablement no pugui comprendre immediatament que el 32 passa a ser 687 00:34:22,090 --> 00:34:25,100 diferència entre una lletra minúscula i una lletra majúscula, encara 688 00:34:25,100 --> 00:34:26,510 utilitzarem aquest fet en el següent problema. 689 00:34:30,210 --> 00:34:31,610 32 és - 690 00:34:31,610 --> 00:34:38,579 vostè pot deixar un comentari sobre ella dient: 32 és la diferència entre 691 00:34:38,579 --> 00:34:45,290 'A' i 'a'. Però en aquest moment, per què no fer servir 'A' i 'a', i 692 00:34:45,290 --> 00:34:47,469 no cal el comentari a continuació. 693 00:34:47,469 --> 00:34:52,739 >> ALI: És només la forma per sobre d'ella són molt més net, l'estil es refereix. 694 00:34:52,739 --> 00:34:54,590 I per això, ja que estàs començant programació - 695 00:34:54,590 --> 00:34:57,775 o crec que no, ja que ets edició hacker - no importa. 696 00:34:57,775 --> 00:34:59,420 És una bona manera de tenir - 697 00:34:59,420 --> 00:35:01,230 és millor tenir un millor estil. 698 00:35:01,230 --> 00:35:02,850 És més fàcil per a la gent a llegir. 699 00:35:02,850 --> 00:35:06,560 ROB: Vostè mai hauria d'haver de recordar la taula ASCII, mai. 700 00:35:06,560 --> 00:35:09,505 Vostè només ha de ser capaç d'utilitzar els caràcters de cometes simples. 701 00:35:12,390 --> 00:35:12,730 Preguntes? 702 00:35:12,730 --> 00:35:13,980 ALI: Tothom bé? 703 00:35:16,020 --> 00:35:16,430 ROB: Molt bé. 704 00:35:16,430 --> 00:35:23,320 Així que el problema és substancial. 705 00:35:23,320 --> 00:35:24,660 Així que el problema ens demana - 706 00:35:27,880 --> 00:35:31,570 ALI: El següent problema està demanant que fem el mateix, però per utilitzar 707 00:35:31,570 --> 00:35:32,640 bitwise operadors. 708 00:35:32,640 --> 00:35:35,170 ROB: I és clar, no hem vist encara operadors bit a bit. 709 00:35:35,170 --> 00:35:38,874 Així que ara vaig a parlar d'això. 710 00:35:38,874 --> 00:35:39,540 ALI: Estar emocionat. 711 00:35:39,540 --> 00:35:41,490 Són super divertit. 712 00:35:41,490 --> 00:35:47,927 >> ROB: Així que els operadors regulars, com x més i, menys, els temps, divisòria. 713 00:35:47,927 --> 00:35:50,850 ALI: Escriviu a aquest sistema. 714 00:35:50,850 --> 00:35:55,420 ROB: També hi ha%, si vostè no ho ha vist, que es pot utilitzar pel 715 00:35:55,420 --> 00:35:57,130 per cent símbol. 716 00:35:57,130 --> 00:35:59,090 Però no utilitzarem els d'aquest problema. 717 00:35:59,090 --> 00:36:01,400 Volem utilitzar els operadors bit a bit. 718 00:36:01,400 --> 00:36:06,250 Ara recordi, nosaltres ho portaven en una conferència. 719 00:36:06,250 --> 00:36:10,760 No estic segur de si hem discutit binari més enllà d'això. 720 00:36:10,760 --> 00:36:13,710 Però recordeu que cada nombre només es representa - 721 00:36:13,710 --> 00:36:14,540 així, tot - 722 00:36:14,540 --> 00:36:17,860 es representa en 1s i 0s en binari. 723 00:36:17,860 --> 00:36:27,320 Així que això significa que quan dic el número 8, que jo sé que això és 724 00:36:27,320 --> 00:36:30,240 com, 1000. 725 00:36:30,240 --> 00:36:35,530 Què operadors bit a bit farem és operar en aquests bits - 726 00:36:35,530 --> 00:36:37,000 s'operen en aquests bits directament. 727 00:36:40,160 --> 00:36:42,490 Ara estic ja no es tracta en termes de vuit. 728 00:36:42,490 --> 00:36:45,930 Estic tractant en termes de 1000, i vull fer les coses amb les quals 729 00:36:45,930 --> 00:36:47,670 bits individuals. 730 00:36:47,670 --> 00:36:52,520 Així que Ali ha escrit els operadors bit a bit aquí, però això és - 731 00:36:55,060 --> 00:36:58,020 El número 8 farem servir com un dels números del nostre exemple. 732 00:36:58,020 --> 00:37:02,980 I la representació binària és 1000. 733 00:37:02,980 --> 00:37:06,520 Utilitzarem un altre número, 5 - 734 00:37:06,520 --> 00:37:12,070 en realitat utilitzarem 9 i 5. 735 00:37:12,070 --> 00:37:15,778 I el 5 de representació binària és 00 - 736 00:37:15,778 --> 00:37:18,380 0101. 737 00:37:18,380 --> 00:37:19,480 ALI: Estan tots bé en això? 738 00:37:19,480 --> 00:37:21,040 El material binari? 739 00:37:21,040 --> 00:37:23,740 Va ser a partir de la primera conferència? 740 00:37:23,740 --> 00:37:29,070 >> ROB: Així que encara que no està completament a la part superior de la forma de convertir les coses 741 00:37:29,070 --> 00:37:31,700 binari, que no és del tot important per aquest problema. 742 00:37:31,700 --> 00:37:36,560 Estarem usant, però tindràs moltes més possibilitats per trobar la manera de 743 00:37:36,560 --> 00:37:39,250 ràpidament canviar les coses en binari. 744 00:37:39,250 --> 00:37:43,820 Així que amb 9 i 5, ara tenim els nostres operadors bit a bit. 745 00:37:43,820 --> 00:37:48,620 Ah, i també, 9 i 5, si és un nombre enter, llavors en realitat és 32 bits, 746 00:37:48,620 --> 00:37:53,150 el que significa que tenim com a 0, 0, 0, 0 un munt de vegades, i després 747 00:37:53,150 --> 00:37:55,330 101 en l'últim moment. 748 00:37:55,330 --> 00:37:58,530 Això és perquè, no importa el que facis, en nombres enters, de 32 bits. 749 00:37:58,530 --> 00:38:01,570 El fet que només es necessiten quatre bits per representar 9 no vol dir que no siguem 750 00:38:01,570 --> 00:38:05,500 utilitzant els altres 27 bits per només 0. 751 00:38:05,500 --> 00:38:10,110 ALI: Només per aclarir, un d'aquests números que hi ha un 0 o un 1 és un bit. 752 00:38:10,110 --> 00:38:11,830 Aquest és de 4 bits. 753 00:38:11,830 --> 00:38:14,320 Com tantes Rob va dir que les màquines d'emmagatzemar en el 32. 754 00:38:14,320 --> 00:38:19,430 Així que llavors tindrien 32 d'un 0 o un 1. 755 00:38:19,430 --> 00:38:22,190 Cool? 756 00:38:22,190 --> 00:38:23,610 ROB: Els operadors bit a bit. 757 00:38:23,610 --> 00:38:27,310 El primer que anem a tractar, farem i. 758 00:38:27,310 --> 00:38:31,260 Així que si fem 9 i 5. 759 00:38:31,260 --> 00:38:38,310 Així que el que fa és i, poc a poc, compara els bits dels dos nombres 760 00:38:38,310 --> 00:38:44,860 i si tots dos nombres són 1, i després tornarà a 1. 761 00:38:44,860 --> 00:38:50,870 Si un és un 0 i l'altre és un 1, o tots dos són 0s, a continuació, torna un 0. 762 00:38:50,870 --> 00:38:53,060 Així que vostè pot pensar en ella com els seus lògiques AND. 763 00:38:53,060 --> 00:38:59,270 Igual que vostè necessita cert i veritable per retornar true, però cert i la falsedat és fals. 764 00:38:59,270 --> 00:39:02,390 Pel que és el mateix, però ara estem tractant amb ell amb només bits. 765 00:39:02,390 --> 00:39:04,910 >> ALI: Llavors, si ens fixem en això, tindràs 1 - 766 00:39:04,910 --> 00:39:08,490 les vas a alinear, de manera que serà 1 i 0. 767 00:39:08,490 --> 00:39:11,036 Vostès pensen que seria - el que avaluaria a? 768 00:39:11,036 --> 00:39:11,770 ALTAVEU 25: 1. 769 00:39:11,770 --> 00:39:12,270 ALI: Cool. 770 00:39:12,270 --> 00:39:16,850 O no. 771 00:39:16,850 --> 00:39:18,830 Em sap greu. 772 00:39:18,830 --> 00:39:21,290 Això té sentit? 773 00:39:21,290 --> 00:39:23,200 Llavors, ¿quina és la resposta col · lectiva de nou? 774 00:39:23,200 --> 00:39:24,750 Em sap greu. 775 00:39:24,750 --> 00:39:27,530 Així que si tenim 1 i 0, llavors què s'obté? 776 00:39:27,530 --> 00:39:30,260 ROB: Així que pensa en el que dius i en veu alta. 777 00:39:30,260 --> 00:39:37,550 Si disposa de dos bits, x i i, necessites x i i per ser 1 per tal que 778 00:39:37,550 --> 00:39:40,770 per avaluar veritable - o, per tal que per avaluar a 1. 779 00:39:40,770 --> 00:39:45,650 Si Xoy són 0, llavors s'avalua com fals o 0. 780 00:39:45,650 --> 00:39:49,165 LUCAS: És bo recordar també que 1 és veritable i 0 és fals. 781 00:39:49,165 --> 00:39:51,684 Així que si tens veritable i fals, és fals. 782 00:39:51,684 --> 00:39:53,570 Però llavors, fidel i veritable, veritable. 783 00:39:53,570 --> 00:39:55,040 Fals i fals, fals. 784 00:39:55,040 --> 00:39:57,650 ALI: Tenim veritable i fals. 785 00:39:57,650 --> 00:39:58,530 So 1 i 0. 786 00:39:58,530 --> 00:40:00,380 Així que, de nou, ho sento, un cop més? 787 00:40:00,380 --> 00:40:02,210 ALTAVEU 25: Seria 0. 788 00:40:02,210 --> 00:40:03,560 Sí, bé. 789 00:40:03,560 --> 00:40:05,400 I després tenim 0 i 1 - 790 00:40:05,400 --> 00:40:06,260 ALTAVEU 25: [inaudible] 791 00:40:06,260 --> 00:40:06,680 ALI: Si. 792 00:40:06,680 --> 00:40:09,790 Així que sempre es pot canviar en - 793 00:40:09,790 --> 00:40:12,150 Llavors, si vostè té 0 i 0? 794 00:40:12,150 --> 00:40:12,618 ALTAVEU 4: 1? 795 00:40:12,618 --> 00:40:14,490 0? 796 00:40:14,490 --> 00:40:16,230 ROB: Així que és 0. 797 00:40:16,230 --> 00:40:18,870 No és que els números han de ser el mateix. 798 00:40:18,870 --> 00:40:22,030 És que tots dos nombres han de ser 1. 799 00:40:22,030 --> 00:40:26,150 ALI: Així que tots dos han de ser veritat perquè sigui cert. 800 00:40:26,150 --> 00:40:26,950 Així que això és 0. 801 00:40:26,950 --> 00:40:30,540 I llavors vostè té un 1%, el que és? 802 00:40:30,540 --> 00:40:32,640 ROB: Són nombres bastant bons. 803 00:40:32,640 --> 00:40:34,362 Tenen tot és possible - 804 00:40:34,362 --> 00:40:36,210 ALI: Bon treball, wow. 805 00:40:36,210 --> 00:40:37,080 D'acord, genial. 806 00:40:37,080 --> 00:40:39,220 Això té sentit per a tothom? 807 00:40:39,220 --> 00:40:41,770 >> ROB: Així que ara farem |. 808 00:40:41,770 --> 00:40:51,650 I això serà molt similar, però ara en lloc de x i i necessitat de 809 00:40:51,650 --> 00:40:54,880 ser d'1 per tal que aquesta pugui valorar a un, ara és només xo 810 00:40:54,880 --> 00:40:56,360 i ha de ser 1. 811 00:40:56,360 --> 00:40:59,580 ALI: So 1 | 0 es s'avalua com - 812 00:40:59,580 --> 00:41:00,270 CLASSE: 1. 813 00:41:00,270 --> 00:41:01,690 ALI: Cool. 814 00:41:01,690 --> 00:41:03,710 0 | 1 avalua a - 815 00:41:03,710 --> 00:41:04,420 CLASSE: 1. 816 00:41:04,420 --> 00:41:06,726 ALI: Cool, i després 0 | 0 - 817 00:41:06,726 --> 00:41:07,600 CLASSE: 0. 818 00:41:07,600 --> 00:41:09,320 ALI: Sí, i després 1 | 1 - 819 00:41:09,320 --> 00:41:10,180 CLASSE: 1. 820 00:41:10,180 --> 00:41:12,090 ALI: Cool. 821 00:41:12,090 --> 00:41:14,060 Així és com dos operadors bit a bit. 822 00:41:14,060 --> 00:41:15,430 Awesome. 823 00:41:15,430 --> 00:41:16,440 ROB: Així que ara farem ^. 824 00:41:16,440 --> 00:41:18,470 ALI: Cal fer tot d'ells? 825 00:41:18,470 --> 00:41:20,620 ROB: Sí, perquè crec que l'utilitzaran - 826 00:41:20,620 --> 00:41:22,340 ús de totes elles. 827 00:41:22,340 --> 00:41:23,150 ALI: Bé. 828 00:41:23,150 --> 00:41:23,570 Per tant - 829 00:41:23,570 --> 00:41:25,540 ROB: Suposo que no cal. 830 00:41:25,540 --> 00:41:31,830 ALI: Llavors ^ obres en què vostè ha de tenir exactament una veritable i una falsa. 831 00:41:31,830 --> 00:41:34,330 ^ Significa OR exclusiva. 832 00:41:34,330 --> 00:41:36,650 Així que ara no és - 833 00:41:36,650 --> 00:41:41,220 si x i i són ambdós 1, és ara falsa. 834 00:41:41,220 --> 00:41:46,920 Aquesta és la diferència entre ^ i |, és que O, vostè pot tenir, si x és 835 00:41:46,920 --> 00:41:49,440 veritable o I és cert, llavors estem bé. 836 00:41:49,440 --> 00:41:55,176 No, diu que si x ^ és veritat, i ha de ser falsa, o en cas contrari no és cert. 837 00:41:55,176 --> 00:41:56,814 Té una pregunta? 838 00:41:56,814 --> 00:42:00,526 >> ALTAVEU 26: [inaudible] 839 00:42:00,526 --> 00:42:00,990 ALI: Si. 840 00:42:00,990 --> 00:42:01,830 És una cosa semblant. 841 00:42:01,830 --> 00:42:07,320 Rob: Sí, així que quan arribi a això de maquinari de baix nivell, aquests són 842 00:42:07,320 --> 00:42:10,870 els tipus d'operacions que s'està tractant. 843 00:42:10,870 --> 00:42:13,200 A nivell de maquinari, només s'ocuparà de bits. 844 00:42:13,200 --> 00:42:14,950 No s'ocupen de nombres. 845 00:42:18,030 --> 00:42:23,502 ALI: Bé, per ^, o si té 1 ^ 0, el que s'ha d'avaluar a? 846 00:42:23,502 --> 00:42:24,840 CLASSE: 1. 847 00:42:24,840 --> 00:42:25,480 ALI: Cool. 848 00:42:25,480 --> 00:42:26,010 Si vostè té 849 00:42:26,010 --> 00:42:28,370 0 ^ 1? CLASSE: 1. 850 00:42:28,370 --> 00:42:29,490 ALI: Cool. 851 00:42:29,490 --> 00:42:32,050 0 ^ 0? 852 00:42:32,050 --> 00:42:32,470 Cool. 853 00:42:32,470 --> 00:42:33,460 I llavors 1 ^ 1? 854 00:42:33,460 --> 00:42:35,050 CLASSE: 0. 855 00:42:35,050 --> 00:42:37,710 ALI: Cool, impressionant. 856 00:42:37,710 --> 00:42:38,620 El següent - 857 00:42:38,620 --> 00:42:40,520 ROB: Crec que es tracta de tot el que hem de tractar. 858 00:42:40,520 --> 00:42:41,490 Només farem això. 859 00:42:41,490 --> 00:42:43,242 ALI: L'única vegada que haurem de fer - 860 00:42:43,242 --> 00:42:44,912 ROB: Oh, això serà per a l'últim problema. 861 00:42:44,912 --> 00:42:47,070 ALTAVEU 27: Espera, un cop més? 862 00:42:47,070 --> 00:42:47,940 ALI: Em sap greu, quina era la seva pregunta? 863 00:42:47,940 --> 00:42:49,564 >> ALTAVEU 27: Es pot explicar que un cop més? 864 00:42:49,564 --> 00:42:50,100 El ^? 865 00:42:50,100 --> 00:42:51,490 ALTAVEU 27: exclus - sí. 866 00:42:51,490 --> 00:42:55,800 ALI: Quina és l'OR única significa que no ha de ser exclusivament 867 00:42:55,800 --> 00:43:02,970 un veritable i fals, així que un 1 i un 0, davant OR, vostè té pot - 868 00:43:02,970 --> 00:43:06,170 un d'ells ha de ser veritat, o tots dos poden ser cert, per 869 00:43:06,170 --> 00:43:07,130 per avaluar true. 870 00:43:07,130 --> 00:43:10,030 ALTAVEU 27: Així que 0 i 0 seria fals. 871 00:43:10,030 --> 00:43:10,450 ALI: Si. 872 00:43:10,450 --> 00:43:11,780 Però si tens 1 | 873 00:43:11,780 --> 00:43:14,290 1, que s'avaluarà com true. 874 00:43:14,290 --> 00:43:18,210 Però si vostè té un ^ 1, com vam fer nosaltres, que s'avalua com false. 875 00:43:18,210 --> 00:43:21,220 Perquè no és exclusivament una és veritable. 876 00:43:21,220 --> 00:43:26,930 ROB: I això pot o no ser útil, però observi que la ^ és 877 00:43:26,930 --> 00:43:28,890 igual a simplement prendre el | 878 00:43:28,890 --> 00:43:30,290 menys el &. 879 00:43:30,290 --> 00:43:32,250 I en realitat es pot pensar d'aquesta manera. 880 00:43:32,250 --> 00:43:37,290 ^ És només ORing tot junts però traient qualsevol dels bits que 881 00:43:37,290 --> 00:43:38,610 ambdós eren certes. 882 00:43:38,610 --> 00:43:41,620 Així i tot torna on tots dos eren certes. 883 00:43:41,620 --> 00:43:45,850 | Torna tot el que un o tots dos eren veritables. 884 00:43:45,850 --> 00:43:51,050 Així que resta des del | li dóna la ^. 885 00:43:51,050 --> 00:43:52,040 ALI: Alguna pregunta? 886 00:43:52,040 --> 00:43:53,290 Aquesta va ser una gran quantitat d'informació. 887 00:43:55,980 --> 00:43:57,510 Tothom bé? 888 00:43:57,510 --> 00:44:00,360 >> ROB: Podem passar els pròxims per al següent problema, reduir 889 00:44:00,360 --> 00:44:01,680 ¿Quina hora és? 890 00:44:01,680 --> 00:44:04,010 No necessiten això fins que el següent problema. 891 00:44:04,010 --> 00:44:07,830 ALI: Vaig pensar que era aquest. 892 00:44:07,830 --> 00:44:08,830 ROB: No ho és. 893 00:44:08,830 --> 00:44:10,085 ALI: Estàs segur? 894 00:44:10,085 --> 00:44:11,300 ROB: Sí, estic segur. 895 00:44:11,300 --> 00:44:12,970 ALI: Per què no començar a fer el problema? 896 00:44:15,710 --> 00:44:19,790 El problema és, una vegada més, per canviar de majúscula a minúscula, i aquest 897 00:44:19,790 --> 00:44:21,720 moment d'usar els operadors bit a bit. 898 00:44:21,720 --> 00:44:22,970 ROB: Així ho farem - 899 00:44:25,290 --> 00:44:29,670 anem a començar amb la representació binària de 'A', 'A' majúscula, 900 00:44:29,670 --> 00:44:31,750 que és 65. 901 00:44:31,750 --> 00:44:36,150 Així que en binari - 902 00:44:39,960 --> 00:44:47,900 de manera que 'A' = 65, = que, en binari - 903 00:44:47,900 --> 00:44:51,380 Vaig a ficar la pota el nombre de 0s - que. 904 00:44:51,380 --> 00:44:53,670 ALI: Això té sentit per a tothom? 905 00:44:53,670 --> 00:44:57,620 Per tant, 1, no 2s, no 4s, 8s no, no - 906 00:45:00,238 --> 00:45:07,075 no 16s, 32s, i després no un 64. 907 00:45:07,075 --> 00:45:08,685 ROB: Sí, crec que això és una 0s massa. 908 00:45:08,685 --> 00:45:09,600 ALI: Em sap greu. 909 00:45:09,600 --> 00:45:13,410 >> ROB: Està bé, així que tenim la sèrie 64, i tenim el conjunt 1, i la combinació dels 910 00:45:13,410 --> 00:45:16,030 junts, tenim 65. 911 00:45:16,030 --> 00:45:17,470 ALI: Cool Beans? 912 00:45:17,470 --> 00:45:19,640 ROB: Així que ara, minúscules 'a'- 913 00:45:22,220 --> 00:45:24,260 nota 97 - 914 00:45:24,260 --> 00:45:26,370 Quina és la diferència entre 97 i 65? 915 00:45:26,370 --> 00:45:27,530 ALTAVEU 28: 32. 916 00:45:27,530 --> 00:45:28,130 ROB: Si. 917 00:45:28,130 --> 00:45:35,920 Així que és de 32 anys, que és el seu propi trosset, així que això serà 110001. 918 00:45:35,920 --> 00:45:41,200 I això serà veritat per a tots els caràcters possibles. 919 00:45:41,200 --> 00:45:49,800 Així que si pensem en la 'D', que serà 68, que serà 1.000.011. 920 00:45:49,800 --> 00:45:56,310 I llavors minúscula 'd'serà 68 més 32, que és 100, que és 921 00:45:56,310 --> 00:46:00,010 serà la mateixa cosa que era, simplement movent el 922 00:46:00,010 --> 00:46:04,300 32 una altra vegada, de manera 1100011. 923 00:46:04,300 --> 00:46:08,610 Així que la diferència entre una lletra majúscula i en minúscula és només moure d'una tirada 924 00:46:08,610 --> 00:46:10,170 que la posició de 32-bit. 925 00:46:10,170 --> 00:46:17,670 ALTAVEU 29: No és 1000100? 926 00:46:17,670 --> 00:46:19,670 ROB: Espera, és 100 - 927 00:46:19,670 --> 00:46:20,480 una cosa que vaig fer malament. 928 00:46:20,480 --> 00:46:21,730 Això no era cert. 929 00:46:28,710 --> 00:46:31,150 Estava pensant que es tractava d'una diferència de 3, de manera que després em va pegar 930 00:46:31,150 --> 00:46:33,970 el binari 3 al final. 931 00:46:33,970 --> 00:46:36,710 Això ha tenir raó. 932 00:46:36,710 --> 00:46:37,150 ALI: Gràcies. 933 00:46:37,150 --> 00:46:38,080 Bé per assenyalar-ho. 934 00:46:38,080 --> 00:46:40,320 Això va ser forta. 935 00:46:40,320 --> 00:46:43,450 Molt bé, està clar a la gent? 936 00:46:43,450 --> 00:46:45,700 >> ROB: La diferència entre la versió en majúscules i minúscules és 937 00:46:45,700 --> 00:46:49,250 sempre serà només 32, de manera que sempre serà una mica sola 938 00:46:49,250 --> 00:46:51,840 que necessita ser voltejat per passar dels dos. 939 00:46:51,840 --> 00:46:54,330 ALI: Així que en aquest cas, conèixer la diferència entre la capital i un 940 00:46:54,330 --> 00:46:57,130 la minúscula és una bona cosa. 941 00:46:57,130 --> 00:47:01,950 No es troba en el codi, però si més no conceptualment, és bo. 942 00:47:01,950 --> 00:47:05,880 Així que vostès poden anar i codi que en els Espais ara. 943 00:47:05,880 --> 00:47:08,580 O hem de parlar-ne? 944 00:47:08,580 --> 00:47:09,760 ROB: Només es pot parlar d'això. 945 00:47:09,760 --> 00:47:10,680 No. 946 00:47:10,680 --> 00:47:11,680 Vostès poden provar. 947 00:47:11,680 --> 00:47:13,560 Discussió entre vostè mateix una mica. 948 00:47:13,560 --> 00:47:16,390 Nosaltres li donarem l'oportunitat de codificar. 949 00:47:16,390 --> 00:47:17,640 [Interrompent VEUS] 950 00:47:19,785 --> 00:47:22,695 ALI: - està fresc 951 00:47:22,695 --> 00:47:26,590 ALTAVEU 30: Això és com la comèdia hacker. 952 00:47:26,590 --> 00:47:31,060 ALI: Sí, estem dient a la premsa, passant a través d'ell. 953 00:47:31,060 --> 00:47:32,310 >> Rob: I estem de tornada. 954 00:47:34,950 --> 00:47:35,405 ALI: Això és una mica estrany. 955 00:47:35,405 --> 00:47:38,720 Sento que hauria de tenir una estació de notícies CS50 i podríem 956 00:47:38,720 --> 00:47:41,500 en realitat es sentin així. 957 00:47:41,500 --> 00:47:43,500 ROB: Notícies Hacker. 958 00:47:43,500 --> 00:47:46,848 ALI: Hacker News 50. 959 00:47:46,848 --> 00:47:49,210 ALI: No dubti en fer qualsevol pregunta si vostè està confós. 960 00:47:52,280 --> 00:47:53,980 ROB: Hi ha algú atrapat? 961 00:47:53,980 --> 00:47:57,160 ALI: Sí, això és una bona cosa. 962 00:47:57,160 --> 00:47:58,590 ALI: Espera, estàs encallat a la seva cadira? 963 00:47:58,590 --> 00:48:01,010 Oh. 964 00:48:01,010 --> 00:48:02,260 Jo estava una mica preocupat. 965 00:48:06,670 --> 00:48:12,150 ROB: Perquè m'acabo de donar compte que anem a voler 966 00:48:12,150 --> 00:48:13,300 altre operador bit a bit. 967 00:48:13,300 --> 00:48:16,985 Per ara, anem a convertir majúscules a minúscules. 968 00:48:23,280 --> 00:48:25,220 ALI: Em sap greu, tothom aconseguir que l'anunci? 969 00:48:25,220 --> 00:48:27,755 Anem a passar de majúscules a minúscules. 970 00:48:27,755 --> 00:48:30,990 ROB: Després parlarem de majúscula a minúscula després d'això. 971 00:48:33,820 --> 00:48:36,650 Oh, no. 972 00:48:36,650 --> 00:48:39,560 Tenim un error en el, que, suposo, mai va tractar de córrer. 973 00:48:39,560 --> 00:48:44,140 Que és només això char c ha de ser declarat fora del bucle, perquè 974 00:48:44,140 --> 00:48:45,805 seu abast està restringit al bucle. 975 00:48:49,200 --> 00:48:53,060 ALTAVEU 32: En aquest cas, és incorrecte utilitzar un nombre? 976 00:48:53,060 --> 00:48:56,930 ROB: Ei, no cal. 977 00:48:56,930 --> 00:49:02,040 Si et garanteix que el capital 'A' - o, en minúscula 'a' capital menys 'A' 978 00:49:02,040 --> 00:49:09,340 era exactament una mica, però que no sap que és 32 - 979 00:49:09,340 --> 00:49:13,160 les coses funcionarien igual de bé si es tractés de la de 16 bits que es va bolcar - o 980 00:49:13,160 --> 00:49:14,610 no, suposo que wouldn't - 981 00:49:14,610 --> 00:49:18,270 o el bit 64 es va bolcar, possiblement. 982 00:49:18,270 --> 00:49:23,230 Però vostè no necessita utilitzar 32. 983 00:49:23,230 --> 00:49:26,141 En el seu lloc, pot utilitzar minúscules 'A' 'a' capital menys. 984 00:49:26,141 --> 00:49:29,340 >> ALTAVEU 32: D'acord. 985 00:49:29,340 --> 00:49:32,996 Què pots fer si et sents com si estiguessis escrivint massa és que es pot definir 986 00:49:32,996 --> 00:49:33,435 a la part superior. 987 00:49:33,435 --> 00:49:41,830 Així que vostè pot ser com, int = diferència minúscula 'A' 'a' capital menys. I 988 00:49:41,830 --> 00:49:43,980 llavors vostè pot escriure diferència en canvi. 989 00:49:43,980 --> 00:49:45,110 Això és vàlid. 990 00:49:45,110 --> 00:49:48,002 Però només amb el nombre 32 és una mena de - 991 00:49:48,002 --> 00:49:51,104 ALTAVEU 33: Tot i que és pel fet que és la de 32 bits? 992 00:49:51,104 --> 00:49:52,570 ALI: Si. 993 00:49:52,570 --> 00:49:54,960 ROB: No pot ser - 994 00:49:54,960 --> 00:49:57,780 l'única garantia que hem de fer és que la diferència entre el 995 00:49:57,780 --> 00:49:59,480 minúscules i majúscules és un bit. 996 00:49:59,480 --> 00:50:04,670 No hauria d'importar que passa a ser la de 32 bits que es va bolcar. 997 00:50:04,670 --> 00:50:06,610 Per raons de temps, començarem a anar per això. 998 00:50:09,170 --> 00:50:10,370 No passa res si no s'ha acabat. 999 00:50:10,370 --> 00:50:13,090 No es preocupi. 1000 00:50:13,090 --> 00:50:16,260 ROB: Suposant que c és una lletra majúscula - 1001 00:50:16,260 --> 00:50:18,030 no hem d'assumir c és una lletra majúscula. 1002 00:50:18,030 --> 00:50:20,750 Sabem c és una lletra majúscula després d'aquest bucle while - 1003 00:50:20,750 --> 00:50:22,160 do-while. 1004 00:50:22,160 --> 00:50:28,590 Així que això significa que es veu alguna cosa com això 'A'. Així que si volem portar aquest 1005 00:50:28,590 --> 00:50:32,895 'A' a aquesta 'a', què és el que hem de fer? 1006 00:50:36,890 --> 00:50:41,920 Llavors, ¿com convertir i donar-li la volta al bit? 1007 00:50:48,040 --> 00:50:49,450 ALI: Com donar-li la volta? 1008 00:50:49,450 --> 00:50:53,010 >> ROB: Així que sabem que volem donar-li la volta al de 32 bits. 1009 00:50:53,010 --> 00:50:59,722 Així que farà 'a' menys 'A', o podríem escriure 32, però - 1010 00:50:59,722 --> 00:51:03,090 Maleïda sigui, és al revés. 1011 00:51:03,090 --> 00:51:07,250 ALI: Bé pel que Rob aquí està el càlcul d'aquesta xifra, el nombre màgic 32. 1012 00:51:07,250 --> 00:51:12,000 Així que ell està descobrint que la zona on flip poc seria. 1013 00:51:12,000 --> 00:51:14,810 I llavors què és el que posem en els signes d'interrogació són? 1014 00:51:14,810 --> 00:51:16,740 ROB: Com podem capgirar aquesta part? 1015 00:51:16,740 --> 00:51:22,784 En termes de la lletra majúscula, és un 0, i volem arribar a ser un 1. 1016 00:51:22,784 --> 00:51:23,660 ALTAVEU 34: |. 1017 00:51:23,660 --> 00:51:24,910 ROB: Si. 1018 00:51:28,780 --> 00:51:38,190 Així que això ens està dient que tenim 'A'. Ho estem ORing amb 0 - 1019 00:51:38,190 --> 00:51:40,750 1000 - 1020 00:51:40,750 --> 00:51:44,720 i que que =. 1021 00:51:44,720 --> 00:51:45,930 ALI: Això té sentit per a tothom? 1022 00:51:45,930 --> 00:51:48,812 Podem anar a través d'ell a poc a poc si vols. 1023 00:51:52,030 --> 00:51:56,300 ALTAVEU 35: És vostè [inaudible]? 1024 00:51:56,300 --> 00:51:57,590 ALI: On és el signe menys? 1025 00:51:57,590 --> 00:51:58,500 ROB: Oh, vols dir aquí? 1026 00:51:58,500 --> 00:51:59,070 ALI: Oh, sí. 1027 00:51:59,070 --> 00:52:00,140 ROB: Així que suposo que això és nosaltres. 1028 00:52:00,140 --> 00:52:05,670 Podríem dir 32 anys, i ara estem fent servir operadors bit a bit. 1029 00:52:05,670 --> 00:52:07,010 ALI: No ens agraden els números màgics. 1030 00:52:07,010 --> 00:52:10,460 No farem això. 1031 00:52:10,460 --> 00:52:13,592 També crec que hauríem d'utilitzar un operador bit a bit - 1032 00:52:13,592 --> 00:52:19,042 ALTAVEU 36: Si un ^ A, obtindrà 32? 1033 00:52:19,042 --> 00:52:19,980 ALTAVEU 37: Sí, crec que - 1034 00:52:19,980 --> 00:52:21,090 ROB: Sí, ho faràs. 1035 00:52:21,090 --> 00:52:23,320 ALI: Així és com s'hauria fet per anar 1036 00:52:23,320 --> 00:52:25,370 del capital en minúscules. 1037 00:52:25,370 --> 00:52:31,130 >> Ara, ¿algú pot dir-me per què Rob i he canviat el sistema i la manera com es va anar 1038 00:52:31,130 --> 00:52:34,040 majúscules de minúscules, en lloc de minúscules 1039 00:52:34,040 --> 00:52:37,810 majúscules com ho vam fer abans? 1040 00:52:37,810 --> 00:52:44,520 Algú té alguna idea de per què pot ser més difícil? 1041 00:52:44,520 --> 00:52:44,880 ROB: Així que faríem - 1042 00:52:44,880 --> 00:52:46,178 ALI: Sí, endavant. 1043 00:52:46,178 --> 00:52:49,640 ALTAVEU 38: L'operador | Només realment bo per sumar. 1044 00:52:49,640 --> 00:52:51,200 ALI: Sí, exactament. 1045 00:52:51,200 --> 00:52:58,320 ROB: Així que el que vull fer en el cas de minúscules a majúscules és a dir, 1046 00:52:58,320 --> 00:53:00,175 convertir aquesta a'' - 1047 00:53:08,540 --> 00:53:14,820 pel que volem posar en alguns números aquí i utilitzar algun operador de manera que es tracta de 1048 00:53:14,820 --> 00:53:21,910 a capital d'A Encara estem utilitzant probablement 32 de alguna manera, però ara com podem 1049 00:53:21,910 --> 00:53:25,280 aconseguir que això surti a això? 1050 00:53:40,910 --> 00:53:42,750 Així que c - 1051 00:53:42,750 --> 00:53:44,000 oh, encara vull que també - 1052 00:53:46,940 --> 00:53:51,055 ALI: Així que ara si estem conversió de minúscules a majúscules de nou, llavors 1053 00:53:51,055 --> 00:53:55,170 fer l'operació ^, com vostès van dir. 1054 00:53:55,170 --> 00:53:57,650 ROB: Hi ha altres maneres de fer les coses. 1055 00:53:57,650 --> 00:54:01,680 Molts dels operadors de bits arribar a ser molt fàcil de definir en termes 1056 00:54:01,680 --> 00:54:03,460 d'altres operadors a nivell de bits. 1057 00:54:03,460 --> 00:54:11,150 Així que jo no usaria ^ o en absolut, però ^ funcionava perfectament bé. 1058 00:54:11,150 --> 00:54:17,910 >> ALI: Bé, pel que anirem a l'últim problema, que és bàsic - 1059 00:54:17,910 --> 00:54:22,390 l'últim problema és convertir una cosa en binari. 1060 00:54:22,390 --> 00:54:26,350 Així, per exemple, té 50 anys, i després es converteix 1061 00:54:26,350 --> 00:54:31,400 binari, que és 110010. 1062 00:54:31,400 --> 00:54:36,010 I jo crec que vostès saben tot sobre binari de xerrada. 1063 00:54:36,010 --> 00:54:39,270 I també se suposa que no posi cap 0s líder-hi. 1064 00:54:39,270 --> 00:54:41,460 ROB: pot ignorar aquesta part per ara. 1065 00:54:41,460 --> 00:54:45,250 El primer pas, vostè pot fer-ho de manera que hi ha 0s líders. 1066 00:54:45,250 --> 00:54:49,200 I després podem modificar aquest no tenir 0s líder, si tenim temps. 1067 00:54:49,200 --> 00:54:50,630 ALI: Així que no et preocupis per això. 1068 00:54:50,630 --> 00:54:52,620 Simplement intentar aconseguir en binari. 1069 00:54:55,880 --> 00:54:59,855 Un bon lloc per començar seria - 1070 00:54:59,855 --> 00:55:02,010 ROB: Hem de demanar un nombre enter. 1071 00:55:02,010 --> 00:55:03,150 ALI: Oh sí, això és una bona idea. 1072 00:55:03,150 --> 00:55:04,170 Podem començar amb això. 1073 00:55:04,170 --> 00:55:06,870 Així que vostè pot canviar el sistema. 1074 00:55:06,870 --> 00:55:08,840 Així que en lloc d'un personatge, ara estem tractant amb nombres enters. 1075 00:55:13,670 --> 00:55:14,920 Cool? 1076 00:55:20,630 --> 00:55:25,300 >> ROB: I ara és el que el nostre do-while condició serà? 1077 00:55:25,300 --> 00:55:27,750 S'està demanant un enter no negatiu. 1078 00:55:31,080 --> 00:55:34,280 ALI: Quan volem seguir preguntant a l'usuari una mica més? 1079 00:55:34,280 --> 00:55:35,950 Quan és menor que 0. 1080 00:55:35,950 --> 00:55:36,760 ALI: Així és. 1081 00:55:36,760 --> 00:55:38,010 ROB: Tot i és menor que 0. 1082 00:55:41,090 --> 00:55:45,120 ALI: Ara volem convertir. 1083 00:55:45,120 --> 00:55:48,150 Vostès tenen alguna idea de què fer? 1084 00:55:48,150 --> 00:55:49,400 Els indicis? 1085 00:55:53,610 --> 00:55:54,984 Si. 1086 00:55:54,984 --> 00:55:57,344 ALTAVEU 39: Hem de convertir-lo, o podem simplement imprimir alguns 0s i 1s 1087 00:55:57,344 --> 00:55:58,760 que seria el nombre correcte? 1088 00:55:58,760 --> 00:56:02,070 Podria fer un bucle for i compti per potències de 2? 1089 00:56:02,070 --> 00:56:03,320 ROB: Si. 1090 00:56:05,750 --> 00:56:08,425 No ha de puc convertir la seva binari - 1091 00:56:08,425 --> 00:56:13,720 la representació binària de i no cap dins de i. 1092 00:56:13,720 --> 00:56:19,090 Només ha d'imprimir la representació binària de i. 1093 00:56:19,090 --> 00:56:21,010 ALI: En altres paraules, vostè no ha d'anar per potències de dos. 1094 00:56:21,010 --> 00:56:23,710 ROB: Perquè ja està sent emmagatzemats com arxius binaris, pel que no és necessari 1095 00:56:23,710 --> 00:56:25,110 convertir a binari. 1096 00:56:25,110 --> 00:56:27,260 Només has d'anar a través del seu binari, i imprimir-lo. 1097 00:56:30,080 --> 00:56:32,140 I hauràs utilitzar bit a bit, perquè vol veure 1098 00:56:32,140 --> 00:56:33,390 els bits reals. 1099 00:56:37,060 --> 00:56:38,600 No cal utilitzar bit a bit, però si us plau. 1100 00:56:44,130 --> 00:56:47,160 I això és en realitat - 1101 00:56:47,160 --> 00:56:50,200 vostè pot fer les potències de dos, multiplicant per 2. 1102 00:56:50,200 --> 00:56:55,120 Anem a repassar una de les últimes dos operadors de bits binaris, 1103 00:56:55,120 --> 00:56:56,410 que és aquest. 1104 00:56:56,410 --> 00:56:58,730 Així que quan vostè pren - 1105 00:56:58,730 --> 00:57:00,083 >> ALI: Es pot anar a través dels dos? 1106 00:57:00,083 --> 00:57:01,440 ROB: Si. 1107 00:57:01,440 --> 00:57:03,050 Així que anirem amb 9. 1108 00:57:03,050 --> 00:57:05,210 Així desviació a l'esquerra 9 1 - 1109 00:57:05,210 --> 00:57:12,220 el que queda és només mig torn moure tots els bits a l'esquerra i inseriu un 0. 1110 00:57:12,220 --> 00:57:15,530 Així que ens estem movent tots els bits de 9 a l'esquerra 1111 00:57:15,530 --> 00:57:20,240 posició, el que ens dóna - 1112 00:57:26,530 --> 00:57:31,570 Així notar hem canviat tot el que queda un, i s'insereix un 0 en el 1113 00:57:31,570 --> 00:57:32,730 costat dret. 1114 00:57:32,730 --> 00:57:36,755 Si s'ha desplaçat a l'esquerra en dues, que canviaria tot el que va deixar a dos, 1115 00:57:36,755 --> 00:57:41,950 i inseriu 2 0s per omplir els buits. 1116 00:57:41,950 --> 00:57:43,200 Pregunta? 1117 00:57:44,890 --> 00:57:47,510 ALI: Llavors desplaçament a la dreta fa una cosa semblant. 1118 00:57:47,510 --> 00:57:53,190 Si té 9 desplaçament a la dreta 1, llavors estàs movent tot a 1119 00:57:53,190 --> 00:57:57,890 el dret, es perd un dígit, el que el 100 en el seu lloc. 1120 00:57:57,890 --> 00:58:04,142 ROB: I està bé que vostè està perdent el poc que va passar a ser tot el 1121 00:58:04,142 --> 00:58:05,200 el camí a la dreta. 1122 00:58:05,200 --> 00:58:08,850 Hi ha diferents tipus de canvis correctes, però bàsicament es pot pensar en 1123 00:58:08,850 --> 00:58:11,410 desplaçament a la dreta com s'acaba de dividir per 2. 1124 00:58:11,410 --> 00:58:14,430 I es pot pensar en desviació a l'esquerra de multiplicar per 2. 1125 00:58:14,430 --> 00:58:16,490 Així que si vostè converteix això - 1126 00:58:16,490 --> 00:58:22,350 si es converteixen 9 torn 1, que és igual a 10010, si en realitat va ser 1127 00:58:22,350 --> 00:58:25,100 mitjançant el binari i descobert el que fos, no seria més que 18 anys. 1128 00:58:25,100 --> 00:58:26,880 Acabem de multiplicar per 2. 1129 00:58:26,880 --> 00:58:30,982 1001 desplaçament a l'esquerra 2 serà 36. 1130 00:58:30,982 --> 00:58:32,400 Es multiplica per 4. 1131 00:58:41,740 --> 00:58:45,360 Val, guai, així que això és un pràctic operador bit a bit per aquesta. 1132 00:58:52,570 --> 00:58:53,330 Més confusió? 1133 00:58:53,330 --> 00:58:54,870 Vostès volen provar-ho? 1134 00:58:54,870 --> 00:58:58,970 O simplement pot saltar a la dreta i posar-lo en marxa? 1135 00:58:58,970 --> 00:59:01,140 ROB: Probablement hauria saltar a la dreta endins 1136 00:59:01,140 --> 00:59:01,880 ALI: Sí, està bé. 1137 00:59:01,880 --> 00:59:03,370 Rob: I caminar a través d'ella junts. 1138 00:59:03,370 --> 00:59:04,440 >> ALI: Bé, jo només vaig a entrar-hi. 1139 00:59:04,440 --> 00:59:09,700 Així com ho vaig dir al principi, anirem només a través de bit per bit. 1140 00:59:09,700 --> 00:59:11,890 Així que necessitarem un bucle. 1141 00:59:11,890 --> 00:59:16,730 Algú té una idea de la millor classe de llaç de passar per això? 1142 00:59:16,730 --> 00:59:20,544 Tenim bucles while, do-while, bucles for. 1143 00:59:20,544 --> 00:59:22,400 ALTAVEU 40: Do-while? 1144 00:59:22,400 --> 00:59:25,150 ROB: Així que recorda el que vaig dir abans sobre, només estem utilitzant do-while 1145 00:59:25,150 --> 00:59:27,390 bucles per obtenir entrada de l'usuari. 1146 00:59:27,390 --> 00:59:30,890 Vostè mai serà més o menys sempre els utilitzen per res més. 1147 00:59:30,890 --> 00:59:33,660 ALI: El problema amb do-while és que faci alguna cosa abans que es comprova 1148 00:59:33,660 --> 00:59:34,470 la condició. 1149 00:59:34,470 --> 00:59:36,540 Per tant, es podria fer una cosa dolenta - 1150 00:59:36,540 --> 00:59:38,640 com, fa mal - 1151 00:59:38,640 --> 00:59:40,350 fer alguna cosa que no és possible. 1152 00:59:40,350 --> 00:59:42,290 Així que vostè vol comprovar primer. 1153 00:59:42,290 --> 00:59:47,620 ROB: Hi ha un munt de casos en què es pot utilitzar do-while, però la gent 1154 00:59:47,620 --> 00:59:52,120 no esperi que els usi si no és l'entrada de l'usuari. 1155 00:59:52,120 --> 00:59:54,215 Així que hem utilitzat la nostra do-while i per aconseguir-ho. 1156 00:59:57,160 --> 01:00:01,260 Quantes vegades és el nostre llaç voldrà bucle? 1157 01:00:01,260 --> 01:00:04,060 Volem bucle sobre cadascun dels bits de i. 1158 01:00:04,060 --> 01:00:06,302 Quants bits hi ha en i? 1159 01:00:06,302 --> 01:00:07,266 ALTAVEU 41: 32. 1160 01:00:07,266 --> 01:00:07,750 ALI: Si. 1161 01:00:07,750 --> 01:00:09,850 ROB: Així que hi ha 32 bits. 1162 01:00:09,850 --> 01:00:12,920 No volem dir 32. 1163 01:00:12,920 --> 01:00:16,230 En el seu lloc, vull dir sizeof - 1164 01:00:16,230 --> 01:00:18,226 que, has vist que a la classe encara? 1165 01:00:18,226 --> 01:00:19,100 ALI: Nope. 1166 01:00:19,100 --> 01:00:20,380 ROB: Per què diu que l'ús - 1167 01:00:20,380 --> 01:00:22,160 sizeof (int) vegades 8 - 1168 01:00:22,160 --> 01:00:23,530 ALI: Bé, sizeof és - 1169 01:00:23,530 --> 01:00:27,050 >> ALTAVEU 42: [inaudible] 1170 01:00:27,050 --> 01:00:27,440 ALI: Interessant. 1171 01:00:27,440 --> 01:00:31,610 Així, sizeof és una funció incorporada a C, on només li indica la 1172 01:00:31,610 --> 01:00:32,500 nombre de bits a - 1173 01:00:32,500 --> 01:00:33,220 ROB: Bytes. 1174 01:00:33,220 --> 01:00:34,210 ALI: Bytes, ho sento - 1175 01:00:34,210 --> 01:00:39,990 el nombre de bytes que té una variable per emmagatzemar un valor. 1176 01:00:39,990 --> 01:00:46,205 Així que crec que va passar a la classe, llavors, un int és de 4 bytes potser. 1177 01:00:46,205 --> 01:00:46,610 Cool? 1178 01:00:46,610 --> 01:00:50,610 ROB: Però vostè no necessita saber que un int és de 4 bytes. 1179 01:00:50,610 --> 01:00:52,670 Vostè ha de ser capaç de dir - 1180 01:00:52,670 --> 01:00:55,870 vostè ha d'utilitzar sizeof (int) per obtenir 4 bytes. 1181 01:00:55,870 --> 01:00:59,170 I això és realment important per a algunes coses. 1182 01:00:59,170 --> 01:01:01,650 Un int no podria ser de 4 bytes. 1183 01:01:01,650 --> 01:01:04,050 En un altre equip, un int pot ser de 8 bytes. 1184 01:01:04,050 --> 01:01:08,500 Així que el teu programa no funcionarà en aquest equip perquè no modificable 32 1185 01:01:08,500 --> 01:01:12,230 bits quan en aquest equip passa a ser de 64 bits. 1186 01:01:12,230 --> 01:01:15,260 ALI: Així que vostè tingui el nombre total de bits que et vull fer marxa enrere. 1187 01:01:15,260 --> 01:01:17,480 Rob: I és la diferència entre un byte i una mica de que no 1188 01:01:17,480 --> 01:01:19,100 són 8 bits en un byte. 1189 01:01:19,100 --> 01:01:22,110 Així que sizeof (int) retorna 4 bytes, llavors hem de multiplicar aquest 1190 01:01:22,110 --> 01:01:24,420 per 8 per obtenir 32 bits. 1191 01:01:24,420 --> 01:01:27,680 >> ALI: Bé, pel que sabem el màxim i sabem que volem anar de - 1192 01:01:27,680 --> 01:01:29,260 volem anar a través de tots ells. 1193 01:01:29,260 --> 01:01:32,950 Així que volem anar de 0 a numBits. 1194 01:01:32,950 --> 01:01:37,160 Llavors, ¿algú sap com escriure el bucle per això? 1195 01:01:37,160 --> 01:01:37,790 Algú? 1196 01:01:37,790 --> 01:01:39,680 ALTAVEU 43: [inaudible] 1197 01:01:39,680 --> 01:01:44,130 ALI: Així que vols travessar el nombre i del bit zero a la 1198 01:01:44,130 --> 01:01:47,840 bit primer, el segon bit, el tercer bit, tot el camí a numBits. 1199 01:01:47,840 --> 01:01:50,972 El nombre màxim de bits que pot arribar. 1200 01:01:54,420 --> 01:01:57,780 ROB: Quin és el llaç comú que utilitzem el que volem fer alguna cosa vegades x? 1201 01:01:57,780 --> 01:01:58,280 ALI: For. 1202 01:01:58,280 --> 01:01:59,280 Perfecte. 1203 01:01:59,280 --> 01:02:00,440 Així que tenim per. 1204 01:02:00,440 --> 01:02:05,242 I després crearem un Iterador, que no serà i. 1205 01:02:05,242 --> 01:02:06,850 ROB: j. 1206 01:02:06,850 --> 01:02:08,080 ALI: J = 0. 1207 01:02:08,080 --> 01:02:09,740 Així que anem a començar a 0. 1208 01:02:09,740 --> 01:02:13,110 I llavors tindrem la condició per estar segur, mentre que vostè està 1209 01:02:13,110 --> 01:02:14,968 passant a través d'ell cada vegada - 1210 01:02:14,968 --> 01:02:16,960 [Interrompent VEUS] 1211 01:02:16,960 --> 01:02:17,960 ROB: j. 1212 01:02:17,960 --> 01:02:19,970 ALI: j és menor que numBits. 1213 01:02:19,970 --> 01:02:23,680 Així que no vull fer el real és igual a un, perquè són numBits 1214 01:02:23,680 --> 01:02:25,365 total, i comencem a 0. 1215 01:02:25,365 --> 01:02:26,360 Així que estem realment tindrà - 1216 01:02:26,360 --> 01:02:27,400 ALTAVEU 44: Oh. 1217 01:02:27,400 --> 01:02:29,300 ALI: Els índexs no acaben en numBits menys 1. 1218 01:02:29,300 --> 01:02:34,070 ROB: Nosaltres etiquetar els bits 0 a 31, no se'ls etiqueta 1 a 32. 1219 01:02:34,070 --> 01:02:36,970 ALI: I després anem a incrementar cada vegada a un, perquè volem 1220 01:02:36,970 --> 01:02:38,050 revisar cada un d'ells. 1221 01:02:38,050 --> 01:02:39,851 Així que anirem j + +. 1222 01:02:39,851 --> 01:02:42,740 >> ALTAVEU 45: Per què fas això? 1223 01:02:42,740 --> 01:02:46,100 ALTAVEU 46: Per què va vostè a través de cada bit? 1224 01:02:46,100 --> 01:02:49,310 ROB: Així que vols anar a través de cada bit i - 1225 01:02:52,780 --> 01:02:55,100 Així que diguem que tenim un nombre. 1226 01:02:55,100 --> 01:02:56,195 ALI: 68. 1227 01:02:56,195 --> 01:02:57,470 ROB: Podem utilitzar 68. 1228 01:02:57,470 --> 01:03:00,450 Així que el binari que serà 100100. 1229 01:03:00,450 --> 01:03:05,540 Així que això està dins de i i volem anar sobre cada un d'aquests bits. 1230 01:03:05,540 --> 01:03:06,450 És un 1? 1231 01:03:06,450 --> 01:03:07,320 Imprimir 1. 1232 01:03:07,320 --> 01:03:08,120 És un 0? 1233 01:03:08,120 --> 01:03:09,100 Imprimir 0. 1234 01:03:09,100 --> 01:03:10,530 A continuació, passem a la següent part. 1235 01:03:10,530 --> 01:03:11,210 És un 1? 1236 01:03:11,210 --> 01:03:11,610 Imprimir 1. 1237 01:03:11,610 --> 01:03:11,830 És un 0? 1238 01:03:11,830 --> 01:03:13,080 Imprimir 0. 1239 01:03:14,880 --> 01:03:16,710 ALI: Cool, està bé. 1240 01:03:16,710 --> 01:03:22,880 Ara estem en l'índex correcte perquè aquest poc és. 1241 01:03:25,380 --> 01:03:28,080 Com podem comprovar que un particular? 1242 01:03:28,080 --> 01:03:33,130 Diguem que estem en j = 0, de manera que desitgi comprovar l'índex 0 del bit. 1243 01:03:33,130 --> 01:03:37,980 Així, en aquest cas, aquesta. 1244 01:03:37,980 --> 01:03:41,930 >> Així que ara, com fem per comprovar - oh, seria aquest. 1245 01:03:41,930 --> 01:03:42,810 ROB: Si. 1246 01:03:42,810 --> 01:03:44,310 ALI: Em sap greu. 1247 01:03:44,310 --> 01:03:47,930 Com fem per comprovar que un, en un sentit? 1248 01:03:47,930 --> 01:03:52,030 Com podem comprovar si és un 0 o un 1? 1249 01:03:52,030 --> 01:03:52,730 Bé let 's - 1250 01:03:52,730 --> 01:03:53,940 CLASSE: I 1? 1251 01:03:53,940 --> 01:03:54,390 ALI: I? 1252 01:03:54,390 --> 01:03:55,010 Si. 1253 01:03:55,010 --> 01:03:57,810 ROB: Així que anem a dir que ja tenim una. 1254 01:03:57,810 --> 01:04:02,470 Llavors això i, es retornarà si es tractava d'un 1 o un 0. 1255 01:04:05,580 --> 01:04:08,200 ALI: Així que podem anar cap avall. 1256 01:04:08,200 --> 01:04:10,695 I podem fer com vostès, va dir, de fer i la funció. 1257 01:04:13,810 --> 01:04:15,560 ROB: int - 1258 01:04:15,560 --> 01:04:18,290 Com vull dir això - 1259 01:04:18,290 --> 01:04:24,250 Isone = i. 1260 01:04:24,250 --> 01:04:29,770 I per al primer bit que estiguem veient, estem fent i & 1. 1261 01:04:29,770 --> 01:04:33,302 Ara, ¿què hem de voler i pel segon bit? 1262 01:04:33,302 --> 01:04:34,294 ALTAVEU 47: 2. 1263 01:04:34,294 --> 01:04:36,110 ROB: Sí, el segon que estem en 2. 1264 01:04:36,110 --> 01:04:39,100 ALI: Es donarà compte de que l'1 s'ha mogut cap a l'esquerra. 1265 01:04:39,100 --> 01:04:44,320 Així que hem après tots els operadors bit a bit per fer aquesta funció? 1266 01:04:44,320 --> 01:04:45,160 ROB: La següent - 1267 01:04:45,160 --> 01:04:46,280 ALI: Sí, és clar, això és. 1268 01:04:46,280 --> 01:04:48,670 Així que és una desviació a l'esquerra. 1269 01:04:48,670 --> 01:04:51,120 En lloc de sempre consultar amb 1, es canviaran. 1270 01:04:51,120 --> 01:04:53,470 I quantes vegades l'hi canviarem? 1271 01:04:53,470 --> 01:04:59,340 Si estem comprovant el zero llavors ens mourem per sobre de zero. 1272 01:04:59,340 --> 01:04:59,975 Sí, exactament. 1273 01:04:59,975 --> 01:05:02,090 Així ho va deixar passar per ella j. 1274 01:05:02,090 --> 01:05:02,550 Perfecte. 1275 01:05:02,550 --> 01:05:03,550 Així que ara que sabem - 1276 01:05:03,550 --> 01:05:06,450 tenim aquest int de si és 1, i després - 1277 01:05:10,690 --> 01:05:14,670 pel que Rob és una espècie de parany aquí - 1278 01:05:14,670 --> 01:05:18,090 i el que ara anava per davant i acaba dient que si realment és 1, 1279 01:05:18,090 --> 01:05:23,540 perquè un resultat veritable, així que no has de dir isf Isone és igual a 1 - 1280 01:05:23,540 --> 01:05:29,210 pel que si Isone, llavors imprimir 1, i en cas contrari imprimir 0. 1281 01:05:29,210 --> 01:05:33,350 >> ROB: Així que el nostre programa té un error total. 1282 01:05:33,350 --> 01:05:35,845 Bé, les preguntes sobre això primer. 1283 01:05:35,845 --> 01:05:41,692 ALTAVEU 48: ¿Podràs posar el Isone dins de la peça i operació de quatre 1284 01:05:41,692 --> 01:05:47,804 llavors sí que ho han canviant a mesura que l'última part? 1285 01:05:47,804 --> 01:05:50,050 Així Isone és igual a 1 i, a continuació - 1286 01:05:50,050 --> 01:05:53,140 Rob: Sí, es pot. 1287 01:05:53,140 --> 01:05:57,200 De fet, podem demostrar que una vegada que es corregeix l'error que estic a punt de 1288 01:05:57,200 --> 01:06:00,050 discutir amb tots vosaltres. 1289 01:06:00,050 --> 01:06:03,470 Tingueu en compte l'ordre en què van les coses. 1290 01:06:03,470 --> 01:06:10,570 Tenint en compte aquesta representació binària, estem començant amb el bit zero. 1291 01:06:10,570 --> 01:06:13,010 Si és un 0, llavors estem imprimint - 1292 01:06:13,010 --> 01:06:15,620 bé, és un 0, de manera que estem imprimint 0. 1293 01:06:15,620 --> 01:06:16,860 Després anem al segon bit. 1294 01:06:16,860 --> 01:06:19,100 Es tracta d'un 0, de manera que imprimim 0. 1295 01:06:19,100 --> 01:06:20,290 Després anem al tercer bit. 1296 01:06:20,290 --> 01:06:22,950 És un 1, pel que imprimim 1. 1297 01:06:22,950 --> 01:06:24,580 ALI: Així que va cap enrere. 1298 01:06:24,580 --> 01:06:27,906 Llavors, com és el que vostès suggereixen que arreglar això i van per un altre camí? 1299 01:06:27,906 --> 01:06:28,900 ALTAVEU 49: [inaudible] 1300 01:06:28,900 --> 01:06:29,490 ROB: Si. 1301 01:06:29,490 --> 01:06:34,500 Així que en comptes d'anar de 0 a numBits, anirem a partir de fragments numBits a 0. 1302 01:06:34,500 --> 01:06:35,600 ALI: Així que [inaudible] 1303 01:06:35,600 --> 01:06:36,940 Sempre es pot anar a un altre costat. 1304 01:06:36,940 --> 01:06:38,970 ROB: NumBits menys 1, perquè aquesta és l'última nubmer - 1305 01:06:38,970 --> 01:06:41,160 ALI: Perquè va de 0 a 31. 1306 01:06:41,160 --> 01:06:44,420 I llavors sempre anem a fer de és més gran que 0 perquè no et vagis 1307 01:06:44,420 --> 01:06:46,100 massa a la dreta. 1308 01:06:46,100 --> 01:06:48,800 I tan bon punt sempre resta per 1 per anar a la dreta. 1309 01:06:48,800 --> 01:06:52,240 >> ROB: Així que ara tenim un bucle de retorn, i el nombre està de tornada en la impressió 1310 01:06:52,240 --> 01:06:53,586 en la forma correcta. 1311 01:06:53,586 --> 01:06:57,560 ALTAVEU 50: ¿No ha de canviar la cosa canvi també? 1312 01:06:57,560 --> 01:06:58,810 ALI: Llavors no. 1313 01:07:03,810 --> 01:07:06,470 ROB: Estem fent les operacions exactament els mateixos, excepte que ara 1314 01:07:06,470 --> 01:07:07,470 en l'ordre invers. 1315 01:07:07,470 --> 01:07:14,170 Així que en lloc de fer el canvi per numBits menys 1 per obtenir el que aquesta 1316 01:07:14,170 --> 01:07:17,430 és poc, en lloc de fer això últim, només haurem de fer primer. 1317 01:07:19,970 --> 01:07:22,970 En revertir aquesta aquí, invertim l'ordre de totes les coses 1318 01:07:22,970 --> 01:07:24,190 que succeeix a l'interior. 1319 01:07:24,190 --> 01:07:28,610 Però no volem canviar el que passa a l'interior del tot. 1320 01:07:28,610 --> 01:07:29,860 ALI: Això té sentit? 1321 01:07:32,240 --> 01:07:33,660 El processament? 1322 01:07:33,660 --> 01:07:41,200 Bé, algú més té alguna pregunta conceptuals altres? 1323 01:07:41,200 --> 01:07:45,030 ALI: Abans d'entrar al punt que és - 1324 01:07:45,030 --> 01:07:46,280 ALI: Bé, bé anar. 1325 01:07:48,350 --> 01:07:53,160 Rob: En lloc d'utilitzar j per ser el nostre - 1326 01:07:55,780 --> 01:08:00,550 en lloc d'utilitzar j per canviar per sempre, com un j desviació a l'esquerra, crec que el 1327 01:08:00,550 --> 01:08:04,120 vostè està dient és així, per si mateix j utilitzar. 1328 01:08:04,120 --> 01:08:09,560 Així que per j - 1329 01:08:09,560 --> 01:08:14,656 Suposo que aquesta és la dura - j = 1 << 31. 1330 01:08:14,656 --> 01:08:16,200 És això el que vols? 1331 01:08:16,200 --> 01:08:18,470 Crec que és << 31. 1332 01:08:18,470 --> 01:08:22,840 j> = 1. 1333 01:08:22,840 --> 01:08:32,319 j >>, >> Isone, i & j - 1334 01:08:32,319 --> 01:08:35,620 de manera que ara en lloc d'usar - 1335 01:08:35,620 --> 01:08:38,370 ALI: Està en constant moviment j en lloc de tenir un 1336 01:08:38,370 --> 01:08:40,520 índex per comprovar-ho. 1337 01:08:40,520 --> 01:08:42,130 No és tan dolent. 1338 01:08:42,130 --> 01:08:43,960 Estem utilitzant el mateix tipus de lògica. 1339 01:08:43,960 --> 01:08:46,202 Així que si vas de nou - 1340 01:08:46,202 --> 01:08:50,020 oh, però perdrà. 1341 01:08:50,020 --> 01:08:51,380 Està bé, et escriure de nou. 1342 01:08:51,380 --> 01:08:56,880 Si vostè nota que tenim una quantitat j << de vegades, i se'ns 1343 01:08:56,880 --> 01:09:02,279 j incrementar cada vegada per un increment, però aquesta vegada en comptes 1344 01:09:02,279 --> 01:09:06,010 que estan fent l'increment de la j en la part superior dins del bucle for. 1345 01:09:06,010 --> 01:09:10,890 Així que en comptes d'estar sempre en moviment cap avall - 1346 01:09:10,890 --> 01:09:15,220 ROB: La primera iteració del bucle for, tenim j és 10000. 1347 01:09:15,220 --> 01:09:20,000 La següent iteració del bucle for és 01000. 1348 01:09:20,000 --> 01:09:22,380 La següent iteració és això. 1349 01:09:22,380 --> 01:09:26,800 I l'1 és només seguirà propagant cap avall fins que arribem a la molt 1350 01:09:26,800 --> 01:09:29,729 final, on ara és això. 1351 01:09:29,729 --> 01:09:33,990 El següent, l'1 serà empès, i j ja no és major 1352 01:09:33,990 --> 01:09:35,090 que o igual a 1. 1353 01:09:35,090 --> 01:09:38,380 També podria posar més gran que 0, la mateixa diferència. 1354 01:09:38,380 --> 01:09:41,580 I això és tot. 1355 01:09:41,580 --> 01:09:43,720 Preguntes? 1356 01:09:43,720 --> 01:09:44,760 Si. 1357 01:09:44,760 --> 01:09:49,740 >> ALTAVEU 51: [inaudible] 1358 01:09:49,740 --> 01:09:51,729 ROB: Així que aquest és el mateix que - 1359 01:09:51,729 --> 01:09:57,270 Has vist j + = 3? 1360 01:09:57,270 --> 01:10:00,960 Així que aquest és el mateix que j = j + 3? 1361 01:10:00,960 --> 01:10:05,560 Vostè pot fer això per gairebé qualsevol operador en C. Així j >> = 3 és 1362 01:10:05,560 --> 01:10:10,490 igual a j = j >> 3. 1363 01:10:13,980 --> 01:10:16,760 Així que també funciona amb els operadors bit a bit. 1364 01:10:16,760 --> 01:10:19,630 I no hauria d'haver posat aquí 31. 1365 01:10:19,630 --> 01:10:23,790 Hi hauria d'haver posat numBits - 1. 1366 01:10:23,790 --> 01:10:25,380 ALI: Yay, no hi ha números màgics. 1367 01:10:25,380 --> 01:10:29,070 Bé, són les 4:00, així que si vostès han d'anar - però té sentit? 1368 01:10:29,070 --> 01:10:30,320 Vostès tenen alguna altra pregunta? 1369 01:10:33,920 --> 01:10:38,470 ROB: Jo també anava a llençar que si volíem - 1370 01:10:38,470 --> 01:10:41,326 es va discutir operador ternari en absolut? 1371 01:10:41,326 --> 01:10:42,730 ALI: No 1372 01:10:42,730 --> 01:10:45,090 Està bé. 1373 01:10:45,090 --> 01:10:46,970 ROB: Així que vostè pot veure-hi per a la pròxima vegada. 1374 01:10:51,030 --> 01:10:52,080 ALI: Bé, en realitat? 1375 01:10:52,080 --> 01:10:53,150 Ara estàs presumint. 1376 01:10:53,150 --> 01:10:54,210 ROB: No, ara és - 1377 01:10:54,210 --> 01:11:00,490 això és el que fa que la gent interessada, i ara aniran a buscar-hi. 1378 01:11:00,490 --> 01:11:02,640 Així que ara, que fa el mateix, en un sol pas. 1379 01:11:05,150 --> 01:11:10,950 Així que primer comprovar, és i & j 1? 1380 01:11:10,950 --> 01:11:12,530 És cert? 1381 01:11:12,530 --> 01:11:17,000 Si és així, escriviu un 1, en cas contrari, imprimiu un 0. 1382 01:11:17,000 --> 01:11:19,190 ALI: Però fer-ho de l'altra manera és perfectament bé també. 1383 01:11:19,190 --> 01:11:20,920 Té la mateixa lògica. 1384 01:11:20,920 --> 01:11:22,730 Així que no és com un és - 1385 01:11:22,730 --> 01:11:24,620 ROB: En aquest punt, podem desfer-nos d'aquestes claus, perquè és només 1386 01:11:24,620 --> 01:11:27,190 una línia de bucle. 1387 01:11:27,190 --> 01:11:29,370 ALI: Bé, pel que no té sentit? 1388 01:11:29,370 --> 01:11:30,370 Això era una mena de salt. 1389 01:11:30,370 --> 01:11:34,870 Però va ser només una mica de sintaxi, més. 1390 01:11:34,870 --> 01:11:36,250 >> Cool? 1391 01:11:36,250 --> 01:11:37,500 Alguna altra pregunta? 1392 01:11:40,880 --> 01:11:41,570 ROB: Molt bé. 1393 01:11:41,570 --> 01:11:42,310 ALI: Bé, genial. 1394 01:11:42,310 --> 01:11:43,560 Gràcies per venir a la secció.