Hva er typekasting i C++?

Hva er typekasting i C++?
Typecasting refererer til en metode for å konvertere en datatype til en annen for beregningsmessig letthet. C ++ programmeringsspråket støtter også typecasting. Når det gjelder denne artikkelen, vil vi ta et dyptgående blikk på hva dette fenomenet er og hvordan det kan implementeres i C ++ på en Ubuntu 20.04 System.

Hva er typekasting i C++?

Vi har allerede uttalt at typecasting konverterer en variabel eller et uttrykk fra en datatype til en annen. Det er hovedsakelig to typer typecasting i C ++, i.e., implisitt typekasting og eksplisitt typecasting. I den tidligere typen spesifiserer vi ikke datatypen vi ønsker å skrive uttrykket, mens vi i sistnevnte type eksplisitt oppgir datatypen der vi ønsker å konvertere det gitte uttrykket.

Eksempler på typekasting i C ++ i Ubuntu 20.04:

Følgende eksempler er designet for å lære deg noen av de forskjellige formene for typecasting ved å relatere dem til relevante scenarier. Etter å ha gått gjennom alle disse eksemplene, vil du kunne vite hvordan du kan konvertere en datatype til en annen ved hjelp av typekastingsteknikken i C ++ effektivt.

Eksempel 1: Konvertering av et tall til dens tilsvarende ASCII -karakter gjennom C -stil typecasting:

I dette eksemplet ønsket vi å sende et nummer til C ++ -koden vår og konvertere den til den tilsvarende ASCII -karakteren ved hjelp av C -stil typekasting. Typecasting Data -typen er vedlagt i runde parenteser i C -programmeringsspråket, etterfulgt av uttrykket for å bli støpt type. Du vil kunne få denne typekastestilen ved å gå gjennom følgende C ++ -program:

For akkurat dette eksemplet har vi laget en fil som heter “Typecasting.CPP ”som vil inneholde vår C ++ -kode. Vi har inkludert det nødvendige biblioteket først i denne koden, etterfulgt av "STD" -navnet. Deretter har vi vår "Main ()" -funksjon der vi ganske enkelt har brukt "cout" -uttalelsen som skal skrive ut ASCII -ekvivalenten til tallet "65" på terminalen.

Når vi har lagret C ++ -koden vår, har vi samlet den ved å bruke kommandoen som er vist nedenfor:

$ G ++ Typecasting.CPP -o Typecasting

Vi har brukt "G ++" -kompilatoren for å samle C ++ -koden vår, "Typecasting.CPP ”er kildefilen vår, mens“ Typecasting ”vil være objektfilen som vil bli opprettet som et resultat av denne samlingen.

Nå kan vi utføre objektfilen vår med følgende kommando:

$ ./Typecasting

ASCII -ekvivalente karakteren til tallet “65” er “A” som vist på bildet nedenfor:

Eksempel nr. 2: Generere hele ASCII -tabellen gjennom C -stil typecasting:

Vi kan også generere hele ASCII -tabellen ved å bruke den samme typen C -stilen i Ubuntu 20.04. For det har vi implementert følgende C ++ -kode på Ubuntu 20.04 System:

I denne C ++ -koden, etter å ha inkludert det nødvendige biblioteket og navneområdet, har vi vår "Main ()" -funksjon der vi har en "for" -sløyfe. Denne sløyfen itererer over en variabel som heter “Alfabet”. Vi har initialisert denne variabelen med verdien “0”, mens avsluttende tilstanden for denne sløyfen er “Alfabetet<128”. After that, we have simply incremented our “alphabet” variable. Within the body of this loop, we have our “cout” statement that will print the ASCII equivalent character corresponding to each alphabet from 0 to 127.

Etter å ha lagret denne C ++ -koden, har vi samlet og utført den som et resultat av at vi klarte å generere hele ASCII -tabellen på Ubuntu 20.04 Terminal som vist på bildet nedenfor:

Eksempel nr. 3: Konvertering av en flottør til et heltall for en tildelingsoperasjon gjennom funksjonell typecasting:

I dette eksemplet lærer vi en annen typekastingsmetode kjent som funksjonell typecasting. I denne metoden for typekasting har vi datatypen uten parenteser etterfulgt av uttrykket for å bli støpt skrevet i runde parentes. Denne måten å typekasting ser ut til å kalle en funksjon i C ++, og det er derfor den er kjent som funksjonell typecasting. Dessuten er dette en form for eksplisitt typecasting. Hovedmålet vårt i dette eksemplet er å konvertere et flytende punktnummer til et heltall for en tildelingsoperasjon. Du kan se følgende C ++ -kode for å vite nøyaktig hva vi har tenkt å gjøre:

I denne C ++ -koden har vi erklært en flottørvariabel “X” og tildelt den verdien “12.4 ”. Deretter har vi erklært en variabel "y" som har heltalldatatypen. Vi ønsket å tilordne verdien av variabel “x” til “y” som bare er mulig hvis "x" også er et heltall. Derfor må vi skrive inn variabelen “x” til heltalldatatype mens vi tildeler den til “y”. Til slutt ønsket vi å skrive ut verdien av variabelen “y” på terminalen for å se om den variable tildelingen hadde funnet sted riktig eller ikke.

Da vi utførte denne koden, viste verdien av variabelen “y” seg å være “12”, noe som betyr at variabeloppgaven var vellykket fordi når vi prøver å skrive et flytende punktnummer til et heltall, er desimaldelen alltid avkortet avkortet. Dette kan sees fra bildet nedenfor:

Eksempel 4: Konvertering av et heltall til en flottør for en tildelingsoperasjon gjennom implisitt typecasting:

I dette eksemplet lærer vi nok en annen typecasting -metode som er kjent som implisitt typekasting. I denne metoden for typing spesifiserer vi ikke eksplisitt datatypen vi ønsker å typekast variablene våre; Snarere tas denne avgjørelsen ved kjøretid i henhold til variabelenes datatype som en verdi blir tildelt. Hovedmålet vårt i dette eksemplet er å konvertere divisjonsresultatet av to heltall til et flytende punktnummer for en tildelingsoperasjon. Du kan se følgende C ++ -kode for å vite nøyaktig hva vi har tenkt å gjøre:

I denne C ++ -koden har vi erklært to heltallvariabler, “x” og “y” og tildelt dem verdiene “12” og “5”. Deretter har vi erklært en variabel “z” som har flytdatatypen. Vi ønsket å tilordne resultatet av “X/Y” til “Z” som bare er mulig hvis resultatet av “X/Y” også er en flottør. I tilfelle av implisitt typecasting trenger vi imidlertid ikke nødvendigvis å konvertere “x/y” til en flottør; Snarere kan det tilordnes som det er variabelen “Z” som vi gjorde i koden vår. Til slutt ønsket vi å skrive ut verdien til variabelen “Z” på terminalen for å se om variabeloppgaven hadde funnet sted riktig eller ikke.

Da vi utførte denne koden, viste verdien av variabelen “Z” seg å være “2”, noe som betyr at variabeloppgaven var vellykket angående implisitt typekasting fordi vi når vi prøver å skrive et heltallnummer til en flottør med implisitt typecasting, dets desimal Del er alltid avkortet. Dette kan sees fra bildet nedenfor:

Konklusjon:

Vi ønsket å forklare deg begrepet typecasting i C ++ i Ubuntu 20.04 I denne artikkelen. Vi forklarte først de forskjellige typene typekasting, hvoretter vi uttalte noen få forskjellige eksempler som utdypet begrepet typecasting i C++. Denne artikkelen ga bare en grunnleggende oversikt over typekasting i C++. Etter de samme linjene kan du også utføre konvertering av andre datatyper.