[Powered by Google Translate] Jordan JOZWIAK: Math castio, yn yr ystyr symlaf, yn ffordd i newid dehongliad cyfrifiadur o rai data yn ôl ddigrybwyll neu'n bendant newid ei ddata fath. Megis newid yn int i arnofio, neu i'r gwrthwyneb. Er mwyn deall castio fath, mae angen i ni dechrau gyda'r pethau sylfaenol - mathau data eu hunain. Mewn ieithoedd cyfrifiadur fel C, yr holl newidynnau yn cael rhyw fath o fath data sy'n penderfynu sut y cyfrifiadur, ac yn yr un modd y defnyddiwr, yn dehongli y newidyn. Fathau o ddata rhifiadol megis int, hir hir, arnofio a dwbl, i gyd yn cael eu nodweddion unigryw eu hunain ac maent yn defnyddio i bennu gwerthoedd o wahanol ystodau ac yn fanwl. Castio Math caniatáu i ni gymryd nifer pwynt arnawf fel 3.14 a chael y rhan cyn y degol, 3 yn yr achos hwn, gan ei thaflu i int. Gadewch i ni gymryd enghraifft o'r iaith Saesneg ar gyfer briff adolygu o fathau, ac i weld sut y gall castio fath newid y ffordd yr ydym yn dehongli darn o ddata. Ar gyfer data, gadewch i ni gymryd y symbolau yma. Fi jyst yn cyfeirio at y llinellau hyn ffurfweddu yn ofalus gan symbolau, ond fel rhywun sy'n gwybod yr iaith Saesneg, chi ar unwaith yn cydnabod eu bod, mewn gwirionedd, llythyrau. Byddwch yn llwyr ddeall y math data. O edrych ar y gyfres o lythyrau gallwn weld dau geiriau gwahanol, pob un â'i ystyr ei hun. Mae yr enw, gwynt, fel yn y gwynt yn chwythu y tu allan. Ac mae y ferf, gwynt, fel yn angen i mi gwynt fy gwylio analog. Mae hyn yn enghraifft ddiddorol, oherwydd gallwn weld sut mae'r math yr ydym yn neilltuo at ein data, boed enw neu ferf, yn newid sut rydym yn defnyddio'r data - fel y gwynt gwynt gair neu. Er nad yw cyfrifiadur yn gofalu am ramadeg a rhannau lleferydd Saesneg, yr egwyddor sylfaenol yn gymwys. Hynny yw, gallwn newid y dehongliad o'r union un data storio yn y cof gan syml fwrw ef i fath gwahanol. Dyma maint y mathau mwyaf cyffredin ar 32-bit weithredu system. Mae gennym torgoch yn 1, int beit ac arnofio yn 4 bytes, hir hir a dwbl mewn 8 bytes. Gan fod yn int yn cymryd fyny 4 bytes, bydd yn cymryd hyd 32 catiau pan gaiff ei storio yn y cof fel cyfres deuaidd o sero a rhai. Cyn belled ag y mae ein newidyn yn parhau i fod fel, int fath y Bydd cyfrifiadur bob amser yn trosi y rhai a sero o binary i mewn i'r rhif gwreiddiol. Fodd bynnag, gallem fwrw ddamcaniaethol y 32 o darnau i mewn i gyfres o fathau Boole. Ac yna byddai'r cyfrifiadur bellach yn gweld nifer, ond yn hytrach na chasgliad o sero a rhai. Gallem hefyd geisio i ddarllen y data fel rhifol gwahanol deipio, neu hyd yn oed fel llinyn o bedwar cymeriad. Wrth ddelio gyda rhifau mewn castio, mae'n rhaid i chi ystyried sut y Bydd y cywirdeb eich gwerth yn cael ei effeithio. Cadwch mewn cof y gall y manylder yn aros yr un fath, neu gallwch golli manylder, ond ni allwch gael trachywiredd. Gadewch i ni fynd drwy'r gyfer y tair ffordd fwyaf cyffredin y gallwch colli trachywiredd. Bydd Castio fflôt i int achosi cwtogi o bopeth ar ôl y pwynt degol, felly rydych yn gadael gyda'r nifer cyfan. Os byddwn yn cymryd y x arnofio a fydd yn gyfartal 3.7, gallwn fwrw y x amrywiol i int at 'n annichellgar ysgrifennu int yn cromfachau. Pryd bynnag y byddwn yn defnyddio'r term hwn i'r dde yma, gallwn eich effeithiol yn defnyddio'r gwerth 3 oherwydd ein bod wedi cwtogi popeth ar ôl y pwynt degol. Gallwn hefyd drosi hir hir i int, a fydd yn yr un modd yn arwain at golli uchel er darnau. Mae hir hir yn cyfrif am 8 bytes, neu 64 ddarnau yn y cof. Felly, pan fyddwn yn bwrw ef i int sydd ond mae 4 bytes, neu 32 darnau, rydym yn eu hanfod yn torri oddi ar yr holl ddarnau a chynrychioli gwerthoedd deuaidd uwch. Gallech hefyd fwrw dwbl i arnofio, a fydd yn rhoi chi arnofio agosaf posibl i'r dwbl heb reidrwydd yn talgrynnu iddo. Yn debyg i'n hir hir i drosi int, mae'r golled yn trachywiredd oherwydd dwbl yn cynnwys mwy o ddata. Bydd dwbl yn eich galluogi i storio 53 darnau sylweddol, tua 16 digid sylweddol. Tra bydd fflôt yn unig yn caniatáu i chi storio 24 darnau sylweddol, tua saith digid sylweddol. Yn y ddau achos olaf, gall fod yn ddefnyddiol i feddwl am teipiwch castio fel newid maint y llun. Pan fyddwch yn mynd o faint mawr i faint bach, na allwch weld pethau mor glir oherwydd eich bod yn colli data ar ffurf picsel. Gall castio Math hefyd yn gallu achosi trafferth pan fyddwn yn bwrw ints i fflotiau. Ers arnofion ar beiriant 32-bit yn unig wedi 24 darnau sylweddol, ni allant gywir cynrychioli gwerthoedd dros 2 i rym o 24, neu 16,777,217. Nawr gadewch i ni siarad am castio eglur ac ymhlyg. Castio yn sicr, yw pan fyddwn yn ysgrifennu y math mewn cromfachau cyn enw amrywiol. Fel enghraifft, cyn i ni ysgrifennu int mewn cromfachau cyn ein arnofio x amrywiol. Yn y modd hwn, rydym yn cael y gwerth int, y gwerth chwtogi o 3.7 - 3. Castio Ymhlyg yw pan fydd y casglwr yn awtomatig yn newid mathau tebyg i fath super, neu'n cyflawni rhyw fath arall o bwrw heb fod angen i'r defnyddiwr i ysgrifennu unrhyw god ychwanegol. Er enghraifft, pan fyddwn yn ychwanegu 5 a 1.1, ein gwerthoedd eisoes mathau sy'n gysylltiedig â hwy. Mae'r 5 yn int, tra bod 1.1 Mae fflôt. Er mwyn eu hychwanegu, mae'r cyfrifiadur yn bwrw 5 i fflôt, fyddai wedi bod yr un peth ag ysgrifennu 5.0 yn y lle cyntaf. Ond mae hyn yn ffordd yr ydym yn dweud float 5, neu 5.0, yn ogystal â beth oedd eisoes fflôt, 1.1, ac oddi yno y gallwn mewn gwirionedd ychwanegu'r rhain gwerthoedd a chael y gwerth 6.1. Castio Ymhlyg hefyd yn ein galluogi i neilltuo newidynnau fathau gwahanol i'w gilydd. Gallwn bob amser benodi math llai manwl gywir i fod yn fwy 1 union. Er enghraifft, os oes gennym x dwbl, a y int - a gallai'r rhain gael unrhyw werthoedd yr ydym yn eu gosod i - gallwn ddweud x yn hafal y. Oherwydd bod y dwbl wedi trachywiredd mwy na int, felly rydym yn ni fydd yn colli unrhyw wybodaeth. Ar y llaw arall, ni fyddai o reidrwydd yn gywir i ddweud y yn hafal x, oherwydd efallai y dwbl yn cael gwerth mwy na y cyfanrif. Ac felly efallai na fydd y cyfanrif yn gallu dal yr holl wybodaeth sydd wedi'i storio yn y dwbl. Castio Ymhlyg yn cael ei ddefnyddio hefyd mewn cymhariaeth weithredwyr fel mwy na, llai na, na gweithredydd cydraddoldeb. Fel hyn, gallwn ddweud os 5.1 yn fwy na 5, ac rydym yn cael y arwain at wir. Gan fod 5 yn int, ond bydd yn cael ei bwrw i fflôt er mwyn yn cael ei gymharu â'r arnofio 5.1, byddem yn dweud 5.1 yn mwy na 5.0. Mae'r un peth yn wir gyda dweud os 2.0 yn dychwelyd yn hafal i 2. Byddem hefyd yn cael yn wir, oherwydd bydd y cyfrifiadur yn bwrw y cyfanrif 2 i arnofio ac yna dweud 2.0 hafal hafal i 2.0, hyn yn wir. Peidiwch ag anghofio y gallwn hefyd fwrw rhwng ints a chars, neu werthoedd ASCII. Chars angen hefyd i gael ei ostwng i deuaidd, a dyna pam yr ydych yn yn hawdd trosi rhwng chars a'u priod Gwerthoedd ASCII. I ddysgu mwy am hyn, edrychwch ar ein fideo ar ASCII. Pan fyddwch yn cymryd hyn o bryd i feddwl am sut y caiff data ei storio, mae'n dechrau gwneud llawer o synnwyr. Mae'n union fel y gwahaniaeth rhwng y gwynt a'r gwynt. Mae'r data yr un fath, ond gall y math newid y ffordd rydym yn ddehongli. Fy enw i yw Jordan Jozwiak, mae hyn yn cs50.