1 00:00:07,632 --> 00:00:10,270 [Powered by Google Translate] JORDAN JOZWIAK: Mota casting, zentzu errazena, da 2 00:00:10,270 --> 00:00:13,300 ordenagailu baten datu batzuk interpretazio aldatzea 3 00:00:13,300 --> 00:00:16,560 inplizituki edo esplizituki bere datu-mota aldatzen ari dira. 4 00:00:16,560 --> 00:00:19,940 Int mugikor bat, edo alderantziz aldatzen, hala nola. 5 00:00:19,940 --> 00:00:21,550 Mota casting ulertzeko, behar dugu 6 00:00:21,550 --> 00:00:22,680 oinarriak hasteko 7 00:00:22,680 --> 00:00:24,140 datu-mota bere burua. 8 00:00:24,140 --> 00:00:26,960 Ordenagailua C bezalako hizkuntzen kasuan, aldagai guztiek dute nolabaiteko 9 00:00:26,960 --> 00:00:29,690 datu-mota zehazten duen ordenagailua, eta, era berean, 10 00:00:29,690 --> 00:00:32,140 erabiltzailea, aldagai hori interpretatzen. 11 00:00:32,140 --> 00:00:35,160 Zenbakizko datuak, hala nola, int luze, float eta mota 12 00:00:35,160 --> 00:00:38,110 bikoitza, denek dute beren ezaugarri berezia da, eta hauek dira 13 00:00:38,110 --> 00:00:41,370 barrutiak eta doitasun desberdinak balioak zehazteko erabiltzen dena. 14 00:00:41,370 --> 00:00:44,800 Koma higikorra duen zenbakia hartu digu bezalako Mota casting esker 15 00:00:44,800 --> 00:00:49,170 3.14 eta zati hamartarra aurretik, 3 kasu honetan, 16 00:00:49,170 --> 00:00:51,590 int bat galdaketa. 17 00:00:51,590 --> 00:00:53,900 Ikus dezagun adibide bat ingelesez labur bat 18 00:00:53,900 --> 00:00:56,910 mota berrikusi, eta casting-mota alda daiteke 19 00:00:56,910 --> 00:00:59,380 datu-pieza bat interpretatu dugu. 20 00:00:59,380 --> 00:01:05,269 Datuak, dezagun sinboloak hemen. 21 00:01:05,269 --> 00:01:07,570 Horiek arretaz konfiguratutako lerro gisa besterik ez dut erreferentzia 22 00:01:07,570 --> 00:01:10,100 sinboloak, baina norbait ingeles hizkuntza ezagutzen, 23 00:01:10,100 --> 00:01:12,750 berehala ezagutzen direla, hain zuzen ere, gutunak. 24 00:01:12,750 --> 00:01:15,580 Inplizituki ulertzen duzu datu-mota. 25 00:01:15,580 --> 00:01:17,620 Looking at letren katea bi ikusi ahal izango dugu 26 00:01:17,620 --> 00:01:20,140 beste hitz batzuekin, bakoitzak bere esanahi propioa. 27 00:01:20,140 --> 00:01:25,530 Noun, haizea, haize kolpeak kanpo. 28 00:01:25,530 --> 00:01:28,280 Eta ez dago aditza, haizea, gisa behar dut 29 00:01:28,280 --> 00:01:31,410 haizeak nire analogikoa watch. 30 00:01:31,410 --> 00:01:33,420 Interesgarri hau adibide bat da, ikusi ahal izango dugu delako 31 00:01:33,420 --> 00:01:36,270 nola gure datuak esleitu dugu, izen edo mota 32 00:01:36,270 --> 00:01:39,080 aditza, aldaketa nola datu horiek erabiltzen ditugu - 33 00:01:39,080 --> 00:01:41,730 haizea edo haize hitza. 34 00:01:41,730 --> 00:01:44,100 Ordenagailu bat ez arren, gramatika eta zatiak buruzko zaintzeko 35 00:01:44,100 --> 00:01:47,750 ahots ingelesa, oinarrizko printzipio bera aplikatzen da. 36 00:01:47,750 --> 00:01:50,290 Hau da, zehatza interpretazioa alda dezakegu 37 00:01:50,290 --> 00:01:53,140 bera memorian gordetako datuak, besterik gabe, galdaketa baten 38 00:01:53,140 --> 00:01:54,576 mota. 39 00:01:54,576 --> 00:01:57,250 Hona hemen ohikoenak mota tamaina 32-bit 40 00:01:57,250 --> 00:01:58,340 sistema eragilearen. 41 00:01:58,340 --> 00:02:02,070 Char byte 1, int eta mugikorrak 4 byte at, luze bat daukagu 42 00:02:02,070 --> 00:02:04,390 luze eta 8 bytes bikoitza. 43 00:02:04,390 --> 00:02:07,670 Int bat hartzen delako 4 bytes, egingo da 32 bit 44 00:02:07,670 --> 00:02:10,060 memorian gordetzen da multzo bitar 45 00:02:10,060 --> 00:02:11,500 zeroen eta direnak. 46 00:02:11,500 --> 00:02:14,020 Gure aldagai mota int, aztarnak 47 00:02:14,020 --> 00:02:16,740 ordenagailua beti bihurtzen dira eta zero horiek 48 00:02:16,740 --> 00:02:19,120 jatorrizko zenbakia sartu bitarrik. 49 00:02:19,120 --> 00:02:21,270 Hala ere, teorian, 32 horiek izan dugu bota 50 00:02:21,270 --> 00:02:23,510 sartu Boolean mota sorta bat bit. 51 00:02:23,510 --> 00:02:26,090 Eta gero, ordenagailua ez jada zenbaki bat ikusi, baina 52 00:02:26,090 --> 00:02:28,810 zeroen eta bai ordez bilduma bat. 53 00:02:28,810 --> 00:02:31,570 Ere saiatu hainbat zenbakizko datuak irakurri ahal izan dugu 54 00:02:31,570 --> 00:02:34,660 idatzi, edo, are gehiago, lau karaktere kate bat bezala. 55 00:02:34,660 --> 00:02:37,820 Casting zenbakiak aurre, kontuan hartu behar duzu 56 00:02:37,820 --> 00:02:40,470 zure balio zehaztasuna eragin egingo da. 57 00:02:40,470 --> 00:02:43,240 Gogoan izan, doitasun berean gera daitezke, 58 00:02:43,240 --> 00:02:47,150 edo doitasun galtzen dezakezu, baina inoiz ez duzu doitasun irabazteko. 59 00:02:47,150 --> 00:02:49,060 Goazen, hiru ahal duzun modu ohikoena 60 00:02:49,060 --> 00:02:50,400 galtzen doitasun. 61 00:02:50,400 --> 00:02:53,060 Int bat mugikor bat Galdaketa guztiaren truncation sor 62 00:02:53,060 --> 00:02:54,900 du dezimal ondoren, eta, beraz, zu utzi 63 00:02:54,900 --> 00:02:55,950 zenbaki osoa. 64 00:02:55,950 --> 00:03:02,000 Hartuko dugu float x 3,7 berdinak dira bada, bota dezakegu 65 00:03:02,000 --> 00:03:05,580 int bat x aldagai hau, besterik gabe, int idatziz 66 00:03:05,580 --> 00:03:07,050 Parentesi. 67 00:03:07,050 --> 00:03:10,010 Ahal den epe hau erabiltzen dugu hemen, modu eraginkorrean dizkizugu 68 00:03:10,010 --> 00:03:12,810 hiru balioa erabiltzen dugu trunkatuta delako 69 00:03:12,810 --> 00:03:14,880 du dezimal ondoren guztia. 70 00:03:14,880 --> 00:03:17,210 Int bat bihurtzen luze bat ere egin ahal izango dugu, eta hori izango da 71 00:03:17,210 --> 00:03:20,760 era berean, goi-ordena bit galera ekarriko. 72 00:03:20,760 --> 00:03:23,910 Luze bat hartzen du, 8 byte, edo 64 bit memorian. 73 00:03:23,910 --> 00:03:27,050 Beraz, int 4 byte, edo 32 bat bakarrik botatzen dugu 74 00:03:27,050 --> 00:03:29,820 bit, funtsean ari gara off Tajadura bit hori guztia 75 00:03:29,820 --> 00:03:32,420 ordezkatzen binary balio handiagoa. 76 00:03:32,420 --> 00:03:34,690 Dezakezu ere bota bikoitza mugikor bat, hau da, ematen 77 00:03:34,690 --> 00:03:37,340 karroza bikoitza hurbilena posible gabe 78 00:03:37,340 --> 00:03:39,100 nahitaez biribilketak. 79 00:03:39,100 --> 00:03:41,840 Int bihurketa gure denbora luzean, galera Similar 80 00:03:41,840 --> 00:03:44,890 doitasun bikoitza dauka datu gehiago delako. 81 00:03:44,890 --> 00:03:47,910 Bikoitza 53 esanguratsua bit gordetzeko aukera emango dizu. 82 00:03:47,910 --> 00:03:50,650 gutxi gorabehera 16 digituak esanguratsua. 83 00:03:50,650 --> 00:03:53,050 Mugikor bat bakarrik izango, berriz, baimendu 24 gordetzeko 84 00:03:53,050 --> 00:03:56,235 bit esanguratsuak, gutxi gorabehera zazpi digituak esanguratsua. 85 00:03:56,235 --> 00:03:58,700 Azken bi kasu horiek, oso erabilgarria izan daiteke, eta uste 86 00:03:58,700 --> 00:04:01,200 idatzi casting tamainaz aldatu argazki bat. 87 00:04:01,200 --> 00:04:03,860 Tamaina handi bat joaten da tamaina txiki bat, ezin duzu ikusi 88 00:04:03,860 --> 00:04:05,600 gauzak argi eta garbi duelako datuak galdu duzu 89 00:04:05,600 --> 00:04:07,530 pixel. 90 00:04:07,530 --> 00:04:09,270 Mota casting arazoak sor ditzakete, dugunean 91 00:04:09,270 --> 00:04:11,050 cast ints karroza. 92 00:04:11,050 --> 00:04:13,920 32-bit makina bat karroza besterik ez geroztik, 24 93 00:04:13,920 --> 00:04:16,959 esanguratsua bit, ezin dira zehaztasunez irudikatzeko balio 94 00:04:16,959 --> 00:04:22,750 2 baino gehiago, 24, edo 16777217 boterea. 95 00:04:22,750 --> 00:04:25,540 Esplizitua eta inplizitua casting buruz hitz egin. 96 00:04:25,540 --> 00:04:28,000 Explicit casting-mota parentesi artean idazten dugu 97 00:04:28,000 --> 00:04:29,430 Aldagai izen bat aurretik. 98 00:04:29,430 --> 00:04:33,100 Adibide bezala, idatzi aurretik parentesi artean int aurretik gure 99 00:04:33,100 --> 00:04:35,640 flotatzen x aldagaia. 100 00:04:35,640 --> 00:04:37,200 Modu honetan, int balioa lortuko dugu, 101 00:04:37,200 --> 00:04:38,593 trunkatuta balioa 3,7 - 102 00:04:38,593 --> 00:04:40,370 3. 103 00:04:40,370 --> 00:04:42,970 Inplizituak casting konpilatzailea automatikoki aldatzen da 104 00:04:42,970 --> 00:04:46,340 antzeko mota super mota bat, edo beste batzuk sort egiten 105 00:04:46,340 --> 00:04:48,310 Erabiltzaile idatzi beharrik gabe galdaketa 106 00:04:48,310 --> 00:04:49,720 kodea edozein gehigarria. 107 00:04:49,720 --> 00:04:53,550 Esate baterako, 5 eta 1.1 gehitzen badiogu, gure balioak dagoeneko 108 00:04:53,550 --> 00:04:55,680 haiekin lotutako mota. 109 00:04:55,680 --> 00:04:59,480 5 int bat da, 1.1 mugikor bat da, berriz. 110 00:04:59,480 --> 00:05:02,390 Gehi, ordenagailu mugikor bat sartu akatsik 5 111 00:05:02,390 --> 00:05:04,530 5.0 idazteko gauza bera izan zen 112 00:05:04,530 --> 00:05:06,476 Lehenik eta behin. 113 00:05:06,476 --> 00:05:13,210 Baina era honetan karroza 5, edo 5.0, plus zer esan dugu dagoeneko 114 00:05:13,210 --> 00:05:16,960 mugikor bat, 1.1, eta han benetan dezakegu gehitu hauek 115 00:05:16,960 --> 00:05:18,640 balioak eta balio 6,1. 116 00:05:21,170 --> 00:05:23,500 Inplizituak casting ere, aukera ematen du aldagai esleitzeko 117 00:05:23,500 --> 00:05:25,590 mota ezberdinak elkarren artean. 118 00:05:25,590 --> 00:05:28,110 Mota zehatz bat gutxiago gehiago batean esleitu ahal izango dugu beti. 119 00:05:28,110 --> 00:05:29,250 zehatz bat. 120 00:05:29,250 --> 00:05:37,060 Esate baterako, bikoitz bat dugu x, int y bat izanez gero - 121 00:05:37,060 --> 00:05:40,120 eta balio horiek edozein ezarri ditugu izan 122 00:05:40,120 --> 00:05:43,560 x berdin y esan dezakegu. 123 00:05:43,560 --> 00:05:46,340 Int bat baino gehiago doitasun bikoitza delako, eta, beraz dugu 124 00:05:46,340 --> 00:05:48,380 ez du inolako informazioa galtzea. 125 00:05:48,380 --> 00:05:50,420 Beste alde batetik, ez luke zertan zuzena esan 126 00:05:50,420 --> 00:05:54,060 y funtzioak x, bikoitza balioa baino handiagoa izan leza 127 00:05:54,060 --> 00:05:55,220 osokoa. 128 00:05:55,220 --> 00:05:57,420 Eta, beraz, baliteke osokoa ez guztiak eduki ahal izango 129 00:05:57,420 --> 00:05:59,560 bikoitza gordetako informazioa. 130 00:05:59,560 --> 00:06:02,610 Inplizituak casting alderatuz operadoreak ere erabiltzen den antzera. 131 00:06:02,610 --> 00:06:06,410 baino handiagoa, baino txikiagoa da, edo berdintasun-operadorea. 132 00:06:06,410 --> 00:06:13,050 Horrela, 5,1 bada esan dezakegu 5 baino handiagoa da, eta lortuko dugu 133 00:06:13,050 --> 00:06:14,750 ondorioz, egia da. 134 00:06:14,750 --> 00:06:18,470 5 int bat delako, baina mugikor bat egingo bota ahal izateko 135 00:06:18,470 --> 00:06:22,090 mugikorra 5.1 aldean, esan 5,1 genuke 136 00:06:22,090 --> 00:06:24,550 5,0 baino handiagoa. 137 00:06:24,550 --> 00:06:31,320 Gauza bera gertatzen da egia 2.0 berdin berdin 2 bada esaten. 138 00:06:31,320 --> 00:06:34,190 Egia ere genuke urtu egingo delako, ordenagailua 139 00:06:34,190 --> 00:06:39,750 osokoa 2 flotatzen eta, ondoren, esan 2.0 berdin berdin 2,0, 140 00:06:39,750 --> 00:06:41,660 hau ez da egia. 141 00:06:41,660 --> 00:06:44,180 Ez ahaztu ere ints eta karakteretan arteko cast, 142 00:06:44,180 --> 00:06:46,350 edo ASCII balio. 143 00:06:46,350 --> 00:06:49,690 Chars ere behar binary murriztu, zergatik duzu 144 00:06:49,690 --> 00:06:51,920 karakteretan eta beren arteko erraz bihurtzeko 145 00:06:51,920 --> 00:06:53,260 ASCII balioak. 146 00:06:53,260 --> 00:06:56,180 Gehiago jakiteko honi buruz, check out gure bideoa ASCII. 147 00:06:56,180 --> 00:06:58,080 Denbora pixka bat beharko duzu datuak nola gordeta pentsatu, 148 00:06:58,080 --> 00:06:59,990 Zentzu asko bat egiteko hasten da. 149 00:06:59,990 --> 00:07:02,790 Haizea eta haizearen arteko aldea besterik ez bezalakoa da. 150 00:07:02,790 --> 00:07:05,490 Datuak berbera da, baina mota alda daiteke nola 151 00:07:05,490 --> 00:07:06,720 interpretatzeko. 152 00:07:06,720 --> 00:07:10,430 Nire name Jordan Jozwiak, cs50 hau da.