Ciao, ci andrà.
Fino ad ora abbiamo esaminato le condutture difettose e sappiamo anche che luglio è tatticamente un linguaggio di tipo che una volta
viene dichiarata una variabile con un tipo particolare.
Può essere assegnato solo a valori, ma a volte potrebbe essere necessario assegnare la variabile al valore a causa
di un altro tipo di dati.
E questo è che il valore deve essere caustico o un altro convertiamolo in quel tipo di dati della variabile.
Ed è qui che entra in gioco il typecasting.
Quindi, il casting è necessario quando vogliamo assegnare una variabile o un letterale di uno che è deliberatamente
fuori tempo.
Ad esempio, potresti voler assegnare una variabile o un letterale di tipo long o di tipo byte a un'incredibile scissione di tali
incarichi che è richiesta la tipizzazione.
E il typecasting è possibile solo tra tipi primitivi numerici e sappiamo che un tipo primitivo
numerico può essere qualsiasi tipo primitivo diverso da Boolean ricorda che anche il conteggio dei tipi di dati rientra in valori
numerici poiché è rappresentato da un numero intero senza segno.
Quindi non possono costare nulla a boolean o viceversa.
Cioè non possiamo assegnare qualcosa di diverso da Booleano una variabile booleana.
Allo stesso modo non possiamo assegnare un valore letterale booleano o una variabile
booleana a una variabile di un altro tipo su Gosney, può essere implicito o esplicito.
Diamo un'occhiata al casting implicito implicito di Gostin è richiesto se vogliamo assegnare una variabile o un letterale
di tipo più piccolo Oliverio con un oggetto come in questo caso diciamo che una convenzione
di allargamento viene eseguita poiché il tipo del valore a destra è avendo ragione e qui la nozione
di tipi sempre più piccoli si basa sulla gamma di valori da supportare.
Ecco un esempio della variabile x di tipo ed è assegnato ad un invito variabile di byte lungo n per questo viene
eseguito un casting implicito.
Ed è fatto dal compilatore automaticamente.
Quindi il valore assegnato alla variabile da vild più grande in modo che abbia 64 bit
come bit depth of long è 64 No che gli esperti non abbiano il valore sessantacinque con trentadue.
E questo diagramma mostra l'ordine di casting implicito eseguito dal compilatore come esempio.
Potete vedere qui che assegnare un byte a un qualsiasi altro tipo di dati, tranne il conteggio, dato che l'assegnazione implicita del
byte al rilevamento sarebbe esplicita che vedremo in seguito.
Possiamo anche vedere che l'assegnazione di un intero a una variabile in virgola mobile ricade sotto il casting implicito.
Ad esempio, anche l'assegnazione di una lunghezza di 64 bit a 32 bit è implicita in quanto l'intervallo di valori per float
è maggiore dell'intervallo di valori per un lungo intervallo di valori è ciò che sta dettando questo ordine.
Possiamo anche vedere quell'assegnazione di Carteaux ed è anche implicito in quanto la gamma di got è valida nel
range di Indeed del nostro tipo.
Sappiamo che il caddice internamente rappresentato da un intero senza segno a 16 bit che assegna allo stesso
modo causa ad altri tipi di dati più grandi come il float o il double sarebbe anche implicito. Quindi è il casting implicito.
Ora, se avesse invertito la direzione di queste frecce, avremmo ottenuto l'ordine per il lancio esplicito senza ostacoli, così come
la loro direzione degli outros è stata invertita.
Quindi, l'ordinamento per il casting esplicito e ne abbiamo bisogno se vogliamo assegnare un lecturn di ordine variabile o per un
tipo più grande ci sono variabili di tipo più piccolo.
E in questo caso diciamo che la conversione di restringimento viene eseguita mentre stiamo
scendendo, ma di no in questo diagramma a parte l'inversione della direzione della nostra nuova da frecce direzionali come sono
stati che collegano gatto e byte e gatto e colpo che implicano che qualsiasi incarico tra di loro richiederebbe
un cast esplicito, ad esempio l'assegnazione di automobili al morso o allo shart sarebbe esplicita in quanto i kata non rientrano
nell'intervallo di valori di questi due tipi di dati.
Non che, sebbene Cod e shot abbiano una grande profondità di 16 copie firmate, sarebbe comunque necessario
un cast esplicito.
Questo perché l'intervallo è zero a causa dell'ordine di 16 meno 1.
Destra.
Ma il blu di fronte è elevato alla potenza di 50.
Questo perché l'intervallo è meno due al potere di essere una parte di meno 1.
Quindi catkin non rientra in questo intervallo, ma sappi che il casting è sempre esplicito.
E la ragione di ciò è che tutti questi altri nuovi o tipi possono avere valori negativi mentre la corrente è rappresentata da un
numero intero senza segno che può essere solo zero su altri.
Ma non negativo.
Ecco un esempio di casting esplicito qui che stai assegnando una lunga strada a una palla
con un valore 42 per fare un incredibile da quando è più lungo di un cast esplicito.
Quindi la fine tra parentesi viene fatta cast esplicito.
Anche il ghast applicato dovrebbe essere compatibile con il tipo di dati della variabile sul lato sinistro.
Questo è il tipo specificato ma il cast deve essere visto spesso di tipo inferiore ma non di tipo più grande.
Quindi in questo caso deve essere e sono più piccoli di e includere il colore come catus senza segno intero non senza
il cast.
Avremmo un errore del compilatore anche se Dawk 42 è valido e questo perché Y sul
lato destro è un'espressione che sarebbe stata valutata 2:42 solo nel compilatore di runtime, semplicemente non lo sa.
Tutto ciò che sa è che Doc White è scaduto a lungo e ci impedisce di fare qualcosa di sbagliato
qui assegnando un'area più grande a una più piccola.
Quindi abbiamo bisogno di informare il compilatore che stiamo bene con il compito inserendo un cast esplicito
annuito per quanto riguarda il cast implicito anche se può uscire dal compilatore.
Se lo fai puoi ancora applicare la zuppa di indovinato e in questo esempio un byte disgustato da Guga poiché un valore
di byte 65 corrispondente al valore 16 di maiuscolo 8 viene assegnato alla variabile c.
Ora qui entrambe le conversioni di allargamento e restringimento vengono applicate da questo convertito in e attraverso un
movimento di allargamento.
E quindi la fine risultante viene convertita in conte 3 o no o in congiunzione qui dove la palla
è assegnata un sessantacinque integrale.
E in questo caso non abbiamo bisogno di un ghast esplicito.
Sessantacinque è nella gamma di GA.
Tuttavia, letteralmente è al di fuori dell'intervallo di conteggio, quindi dovremmo inserire un cast esplicito su un
filo per realizzare un sommatore se a una variabile corta è stato assegnato un carattere letterale.
Aveva una variabile quando viene assegnato l'equivalente decimale sessantacinque.
Ancora una volta non è richiesto alcun cast esplicito.
Sessantacinque ti ostacoleranno il lancio in mare aperto se il ciclotrone fosse al di fuori dei tiri, ma le assegnazioni
fuori gamma porterebbero anche alla perdita di informazioni.
Diamo un'occhiata a che qui c'è uno scenario in cui ci sono informazioni perdute per un incarico che colpisce un
valore uno due tre quattro cinque sei è fuori dal range di morso e qui
c'è un cast esplicito e alla variabile viene assegnato un numero strano che in questo caso 64 e 64 vengono assegnati perché JVM
scarta tutti gli 8 bit inferiori dell'equivalente binario di questo numero 1 2 3 4 5 6 e quelli né un bit che
appaiono sul lato destro della risposta del modello di bit a quel decimale 64.
Ed è così che otteniamo il numero 64 qui solo gli ultimi 8 bit sono considerati come variabili qui.
Byte che ha solo 8 bit.
Quindi c'è una perdita di informazioni qui.
Essenzialmente ciò che sta accadendo qui è che la variabile è un piccolo contenitore in quanto è un byte.
E stiamo cercando di riempirlo con qualcosa che non si adatta a quel contenitore.
Quindi alcune delle cose che stiamo cercando di riempire sta per uscire dal contenitore.
E quindi c'è un secondo scenario di perdita di informazione se l'informazione persa è quando proviamo a lanciare un letterale
floating point o una variabile in virgola mobile fa un intero Arctic Cat affidabile e questa
ipotesi troncerà sempre che il legname ricorda che quando diciamo intero potrebbe significa uno qualsiasi dei 40
tipi byte short e long.
E sappiamo che il punto in virgola mobile includerebbe il galleggiante e il doppio.
Ad esempio, quando proviamo ad assegnare un float di tre punti uno per invariabile, il
valore tre punti 1 4 viene troncato a 3.
Allo stesso modo quando un doppio punto zero nove viene assegnato ad un incredibile
troncamento variabile alla variabile vengono assegnati i valori 0 qui un doppio è custard dukha dice che il valore è sessantacinque virgola cinque.
Sarebbe stato appena convertito in e Mitchell battesse sessantacinque dopo il troncamento e quindi il corrispondente
valore di udy di 16 è assegnato alla variabile.
Quindi gli esempi in questa diapositiva mostrano che il casting esplicito potrebbe essere necessario anche se abbiamo a
che fare con le lettere.
Tieni a mente che il motivo principale per il casting esplicito è perché il valore assegnato potrebbe essere al di
fuori dell'intervallo della variabile sul lato sinistro.
Ora, arrivando alle informazioni, l'ultimo bit riguarda il casting implicito.
Generalmente non aggiungerai alcuna perdita di informazioni che i libri di Roloff impliciti in raffica sono istruttori dicono
che non c'è perdita di informazioni sul casting implicito, ma per essere precisi per pochi compiti
c'è la possibilità di una perdita di informazioni.
Ad esempio, consideriamo la rappresentazione dell'ordine di casting implicito, ancora una volta, questo è un ordine di casting implicito.
Abbiamo visto prima qui.
Assegnare un'estremità a float oa un float lungo può causare una perdita di precisione poiché il valore risultante
potrebbe perdere alcuni dei bit meno significativi del valore assegnato.
E questa perdita di posizione può anche accadere.
A lungo è assegnato un doppio ma non anatra e il doppio va bene.
Diamo un'occhiata a questo per un semplice esempio.
Qui una variabile int denominata all one è assegnata a un float.
In questo caso ci sarebbe una perdita di posizione e quindi la prossima affermazione.
Stiamo rilasciando quello che torna a essere AFFIDABILE neutro e rampante Newble vedrà che è leggermente più grande
di Olvir.
Quindi, quando tutta la banda è stata assegnata a galleggiare, si siederà su di essa con un numero maggiore. Quindi c'è
una leggera perdita di posizione, quindi ci può essere una perdita di informazioni.
Anche con il cast implicito, ma è un'ipotesi piuttosto insolita.
Quindi non capiamo veramente il casting.
Ora diamo un'occhiata a un paio di casi d'uso comuni in cui il cast viene applicato alle
hustler guardano un esempio di casting implicito dice che assumiamo che queste due variabili siano sufficienti per consentire
a tutti noi di avere questo metodo chiamato core che prende due parametri e lo yacht off pipe double.
Così ha avuto D1 e si è fatto riferimento a come barometri e discuteremo i metodi della ragione che ciò
che il metodo fa qui è irrilevante per questa discussione.
Successivamente possiamo chiamarli o passarli passando a variabili mobili come input in modo che per abilitare
i valori verrà assegnato il doppio dei parametri che la materia definisce.
Quindi il valore della variabile f uno sarà assegnato a un valore variabile D1 di cui realmente sarai
assegnato dove farà.
E per questo viene eseguita una spira implicita dal galleggiante al doppio.
Quindi questo tipo di casting implicito è piuttosto comune quando si tratta di metodi per quanto riguarda il casting
esplicito.
Consideriamo questo esempio.
Vogliamo calcolare la media dei numeri 2 e 3 in Java.
Ciò risulterebbe in due anziché in 2. 5 come il libro 2 e 3 qui sono.
Abbiamo il doppio sul lato sinistro.
Abbiamo ancora il valore 2, perché la ragione per questo più avanti, quando discutiamo del nostro cerchio di operatori metrici, ottiene il giusto
valore della lotta al punto di rugiada.
Dovremmo applicare un cast esplicito in questo essere.
Pertanto, se si eseguono operazioni di metrica aggiunte di questo tipo con l'operatore di divisione,
è possibile che sia necessario inserire il cast esplicito.
Quindi quelli sono alcuni scenari comuni di utilizzo della fusione.
Il cast è principalmente necessario quindi vogliamo assegnare una variabile o un letterale di un tipo alla
variabile off e digitare un cast esplicito entra in gioco quando c'è qualche problema con l'intervallo di valori non solo per equipaggiarli
o di alcuni degli esempi abbiamo già discusso un nuovo metodo chiamato typecasting è stato
aggiunto al programma demo di base e si può trovare il programma aggiornato nella sezione risorse.
Quindi andiamo avanti e guardiamo il programma. OK, ecco il numeratore che esegue l'ordinamento tipo marito che ci chiama in modo appropriato tipo casting come
abbiamo a che fare con il casting di tipo.
E nella questione principale abbiamo commentato i due metodi precedenti in Sprint e primitivi come abbiamo
fatto con loro.
E quindi c'è un nuovo metodo nella dichiarazione di missione chiamato typecasting.
Quindi andiamo avanti e guardiamo al metodo di tipizzazione e stiamo stampando la dichiarazione dicendo che siamo
all'interno di quel casting e ospitiamo alcuni degli esempi interessanti che abbiamo visto in
precedenza.
Quindi andiamo avanti e guardiamo ciascuno degli esempi.
Quindi il primo esempio qui dimostra questo un esplicito esempio di raffica.
Quindi qui abbiamo la variabile y che è di tipo long in essere assegnata alla variabile x di tipo.
E quindi questo dovrebbe dare un A compassionevole perché perché è un tipo più grande e X è più piccolo.
Quindi deve esserci un Guste esplicito.
Quindi come puoi vedere dice tipi incompatibili possibile conversione da lunga perdita.
E quindi perché qui è un'espressione e viene valutata.
171 2:42 solo in fase di esecuzione.
OK così al compilatore di compilazione tutto ciò che sa è il byte bianco spento che è lungo e sa che non
può essere assegnato perché può esserci una conversione con perdita.
Quindi dobbiamo dire al compilatore che sta volando inserendo il costo.
Quindi è quello che faremo ora.
Quindi ora va bene.
OK.
Quindi questo è il primo esempio nel secondo esempio che abbiamo già visto.
Quindi questo numero viene assegnato al morso I e questa perdita di informazioni dimostrative.
Ma lasciatemi smentire questo qui.
Quindi questo dovrebbe anche avere un errore di compilazione.
Quindi questo è letterale.
E in questo caso il compilatore sa che questo valore viene assegnato a un byte i cui intervalli vanno
da meno uno a otto a positivo a 127.
Quindi quando lo fai, dice che dà lo stesso errore di compilazione perché in questo caso conosce
questo valore stesso.
Non c'è scadenza qui.
Questo è letterale.
Esiste un'espressione come nell'esempio precedente ma qui sa che chiaramente sa che
questo è fuori dall'intervallo di byte.
OK, quindi dobbiamo inserire un cast qui.
Così ora se il compilatore agisce bene su un eseguo, assegna 64 perché non ci sono molte informazioni su alcuni numeri
che vengono assegnati a questo angolo o byte variabile.
Ora cambiamo solo un po 'più chiaro a 128.
Questo dovrebbe anche dare un errore di compilazione perché 128 come al di fuori dell'intervallo di byte è gamme
di byte meno 128 deposito 127.
Quindi dà lo stesso errore o è necessario inserire un cast qui nel qual caso sarebbe una perdita
di informazioni o deve essere un certo numero all'interno dell'intervallo.
Quindi se hai risposto 127 allora va bene.
Vedi nessun ordine.
In modo che possa solo cambiare questo indietro.
Quindi il terzo esempio qui riguarda il troncamento.
Quindi qui stiamo assegnando il valore al doppio valore punto novantanove e stiamo inserendo un cast qui.
Quindi è un cast esplicito.
Quindi questa viene assegnata a questa variabile che troncata verrà assegnata a zero.
Quindi, solo questo è.
Quindi come puoi vedere è zero quindi non è il punto nove e viene troncato a zero.
Ora qui in questo esempio è un cast implicito.
X è spento e Y è di tipo lungo.
Quindi è solo un cast implicito.
E quindi nessun completamento o due.
Ora il prossimo esempio è un cast implicito, ma da macchina a Karras e così fa qui e offre un tipo più
grande.
Quindi sarà un cast implicito ma verrà assegnato un valore sessantacinquenne 65 perché per il carattere a
16 il valore decimale corrispondente è 65 su quel valore decimale che viene assegnato qui perché a causa di quel tipo
di dati in.
Quindi se torni qui per la fascia alta è 65 anni.
Ora qui c'è qualcosa che viene gettato per contare.
Sappiamo che se qualcosa è stato lanciato per contare, deve essere un cast esplicito.
Quindi qui abbiamo byte qui.
Quindi sta diventando gaster tukar.
Quindi il modo in cui funziona è che prima viene promosso un byte e poi da.
E ci sarà una conversione da curare.
OK, quindi questo valore 65.
Quindi il valore del valore DFA 16 corrispondente è un carattere in maiuscolo.
Lo sappiamo molto bene.
Quindi viene assegnato qui o qui.
Quindi è solo che la chiamiamo come una conversione speciale perché inizialmente c'è
un allargamento da un byte all'altro che viene poi seguito passando dalla fine al conteggio attraverso il casting esplicito.
OK, questo è tutto.
Quindi questi sono alcuni degli esempi interessanti quindi basta andare avanti e scaricarlo dalle risorse che puoi.
Puoi anche dipendere dal codice a barre e puoi girarlo.
OK quindi felice codifica.
E grazie.