“I typekasting endrer kompilatoren datatypen på variablene våre i seg selv basert på hvordan vi vil at programmet skal kjøre. C -operasjoner kan bare utføres med lignende datatyper. Hvis datatyper blir annerledes, vil det i så fall oppstå typecasting.
På C -språk definerer vi variabler eller konstanter med spesifikke datatyper, hvis vi etter erklæringen om variablene våre skriver et uttrykk eller utfører litt operasjon, og vi kan få utgangen fra den i en annen type. Så for å opprettholde typen, trenger vi typekasting for det formålet. La oss anta at vi tar to heltall og deler dem med hverandre; Resultatet kan være i en dobbel datatype på grunn av poengverdien. Så for å løse problemet, vil vi bruke begrepet typecasting.
Det er to typer typecasting en er implisitt og den andre er eksplisitt.
I implisitt typekasting blir prosessen utført av kompilatoren, og ingen informasjon går tapt. I eksplisitt typecasting vil vi som programmerer gjøre avstøpning manuelt, og ved å gjøre det kan vi miste informasjonen.”
Syntaks
Syntaksen for typecasting er som følger:
Hvis vi ser på syntaksen, vil vi se at typenavnet er definert i braketten før uttrykket eller operasjonen. For eksempel: Hvis vi kjører et uttrykk på heltalldatatyper som vil gi oss output i dobbelt, vil vi skrive dobbelt i type_navn -braketten, og etter det vil vi skrive koden for vårt uttrykk. En ting å huske på er at mest under den aritmetiske operasjon. Kompilatoren definerer hierarkiet til de aritmetiske datatypene og gjør deretter konvertering til datatypen, som er øverst i hierarkiet.
Eksempel 1
La oss se på følgende kode for å forstå hvordan vi kan ta hjelp av typekastingsprosessen for å dele et heltall i et annet og få en float -datatype i poeng. I dette eksemplet, hvis vi ikke utfører casting i programmet vårt, vil vi få produksjon som et heltall selv om vi erklærer Z -variabelen som en dobbel, som brukes til å lagre verdien etter operasjonen. Så det vil ikke gi oss den nøyaktige verdien, og utgangen vil ikke være riktig i heltall.
Nå i koden nedenfor har vi initialisert to heltall, “X” og “Y”, og tildelt dem verdier “21” og “4”. Vi har også tatt den tredje variabelen av datatype dobbelt for å lagre utgangsverdien, som vil være i poeng. Under operasjonen har vi skrevet dobbelt i parentes før divisjonen mellom x og y. Dette er typekasting. Vi ber kompilatoren om å kaste verdiene i dobbelt og deretter dele dem slik at vi kan få produksjonen i poeng. Så trykket vi utdataene våre for å sjekke om det var riktig eller ikke.
Det er to typer typecasting en er implisitt, og den andre er eksplisitt. Typecasting i C er diskutert i denne artikkelen.
#inkludere
Int x = 21, y = 4;
dobbel z;
z = (dobbel) x/y;
printf (“output etter typekasting er: %f \ n”, z);
retur 0:
Etter å ha samlet koden vår, vil vi få følgende verdi som utdata. Vi kan se at verdien er i desimaler og gir oss den nøyaktige verdien selv etter poenget. Hvis vi ikke har utført støping på uttrykket vårt, vil vi få resultatet som 5.000000 fordi systemet vil dele heltallene og ikke få produksjonen etter punktene. Men med typekastingen fikk vi 5.250000 som er den faktiske verdien. En ting du vil legge merke til om koden og utdataene er at forekomsten av typen_casting -operatøren er mer enn divisjonen eller "/" -operatøren. Dette betyr at systemet vil utføre typekasting først på heltallene, konvertere dem til dobbelt og deretter utføre divisjonsprosessen.
Eksempel 2
Vi diskuterte tidligere at det er to typer typecasting. I forrige eksempel gjorde vi eksplisitt casting. I dette eksemplet vil vi gjøre implisitt typekasting, noe som betyr at vi lar kompilatoren gjøre rollebesetningen av seg selv. Vi har definert 3 variabler A, B og C. Vi har gitt datatyper, flyter og heltall til dem. Det gis en verdi i desimalpunkter til floatvariabelen, og et enkelt antall tilordnes heltallkonstanten. Variabelen B, som er et heltall, vil bli konvertert til float automatisk, og det er en større datatype i C relativt. Variabelen A er allerede flytende med tanke på sine typer.
Det er to typer typecasting en er implisitt, og den andre er eksplisitt. Typecasting i C er diskutert i denne artikkelen.
#inkludere
flyte a = 25.23
int b = 5;
float c;
c = a/b;
printf (“output etter typekasting er: %f \ n”, c);
retur 0:
Utgangsverdien vil være 25.23/5 = 5.046. Vi kan se i koden vår at vi ikke har tildelt noen (type_casting) operatør til vårt uttrykk, men vi fikk verdien i punkter selv med heltalldatatypen. Det er fordi systemet har konvertert datatypen av seg selv. Tross alt har float -datatypen en høyere preferanse enn heltallet, og under operasjonen var "A" -variabelen float. Så Datatype Float ble prioritert av kompilatoren, og den ga automatisk resultatet i float. Dette kalles implisitt typecasting.
Eksempel 3
Vi kan ikke bare konvertere int for å flyte eller doble, men vi kan konvertere karakterer til andre typer også. For å gjøre det har vi tatt tre variabler med datatyper int og karakter. Vi har tildelt verdien “10” til heltallet “X” og “Z” til karakteren vår “A”. Vi har oppsummert karakter- og int -variablene. Logisk sett er det ikke mulig, men ved hjelp av typekasting kan vi gjøre det.
Det er to typer typecasting en er implisitt, og den andre er eksplisitt. Typecasting i C er diskutert i denne artikkelen.
#inkludere
Int x = 10
char a = 'z';
int sum;
sum = (int) x + a;
printf (“Verdien av alfabetet z er: %f \ n”, a);
printf (“Den totale summen er: %f \ n”, sum)
retur 0:
I ASCII er verdien av z 90. Vi har skrevet ut verdien av Z, som er 90. Etter å ha lagt til 90, som er verdien av z i int, med verdien 10, som vi tildelte vår x konstant, vil vi få totalt 100. Dette er et eksempel på å konvertere en streng eller karakterdatatype til et tall eller heltalldatatype.
Konklusjon
I dette emnet diskuterte vi typekasting og forklarte deg hvordan typekasting fungerer og når du skal bruke typekasting. Vi diskuterte også forskjellige typer typekasting i detalj med eksempler. Typecasting er en veldig effektiv tilnærming for å konvertere resultatene fra forskjellige datatyper i henhold til våre krav. Det hjelper oss å få nøyaktig nøyaktig informasjon uten risiko for å miste informasjonen vår. En annen stor fordel med typekasting er at den gjør koden vår lett og effektiv.