Šioje temoje aptarsime vieno duomenų tipo konvertavimą į kitą programavimo kalba C++. Tipo konvertavimas yra procesas, kurio metu iš anksto nustatytas vieno kintamojo duomenų tipas konvertuojamas į atitinkamą duomenų tipą. Pagrindinė tipo konvertavimo idėja yra konvertuoti du skirtingus duomenų tipo kintamuosius į vieną duomenų tipą, kad būtų galima lengvai išspręsti matematines ir logines išraiškas neprarandant duomenų.
Pavyzdžiui, pridedame du skaičius, kur vienas kintamasis yra int, o kitas float tipo; turime konvertuoti arba tipiškai perduoti int kintamąjį į slankųjį kintamąjį, kad jie abu būtų slankiojantys duomenų tipai, kad juos pridėtume.
Tipo konvertavimas C++ gali būti atliekamas dviem būdais, vienas yra numanomas tipo konvertavimas , o antrasis yra aiškaus tipo konvertavimas . Tuos konvertavimus atlieka pats kompiliatorius, vadinamas numanomu tipo arba automatiniu tipo konvertavimu. Konversija, kurią atlieka vartotojas arba reikalauja vartotojo trukdžių, vadinama aiškia arba vartotojo apibrėžto tipo konversija. Aptarkime numanomąjį ir eksplicitinį tipo konvertavimą C++.
Netiesioginė tipo konversija
Netiesioginis tipo konvertavimas yra konvertavimo tipas, kurį kompiliatorius atlieka automatiškai be jokių pastangų. Tai reiškia, kad numanomas konvertavimas automatiškai konvertuoja vieną duomenų tipą į kitą tipą pagal kai kurias iš anksto nustatytas C++ kompiliatoriaus taisykles. Todėl jis taip pat žinomas kaip automatinis tipo konvertavimas .
Pavyzdžiui:
int x = 20; short int y = 5; int z = x + y;
Aukščiau pateiktame pavyzdyje yra du skirtingi duomenų tipo kintamieji x ir y, kur x yra int tipas, o y yra trumpojo int duomenų tipo. Ir gautas kintamasis z taip pat yra sveikojo skaičiaus tipas, kuriame saugomi x ir y kintamieji. Tačiau C++ kompiliatorius automatiškai konvertuoja žemesnio rango duomenų tipo (trumpą int) reikšmę į aukštesnio tipo (int), prieš gaudamas dviejų skaičių sumą. Taigi išvengiama duomenų praradimo, perpildymo ar ženklų praradimo netiesiogiai konvertuojant C++ tipą.
java pora
Tipo perdavimo tvarka numanomoje konversijoje
Toliau pateikiama teisinga duomenų tipų tvarka nuo žemesnio rango iki aukštesnio rango:
bool -> char -> short int -> int -> unsigned int -> long int -> unsigned long int -> long long int -> float -> double -> long double
Programa konvertuoti int į plūduriuojantį tipą naudojant implicitinio tipo konvertavimą
Sukurkime programą, skirtą mažesnio rango duomenų tipams konvertuoti į aukštesnius tipus, naudojant numanomą tipo konvertavimą.
Program1.cpp
#include using namespace std; int main () { // assign the integer value int num1 = 25; // declare a float variable float num2; // convert int value into float variable using implicit conversion num2 = num1; cout << ' The value of num1 is: ' << num1 << endl; cout << ' The value of num2 is: ' << num2 << endl; return 0; }
Išvestis
The value of num1 is: 25 The value of num2 is: 25
Programa konvertuoti dvigubą į int duomenų tipą naudojant numanomą tipo konvertavimą
Sukurkime programą, skirtą aukštesnio tipo duomenų konvertavimui į žemesnio tipo duomenis, naudojant numanomą tipo konvertavimą.
Program2.cpp
#include using namespace std; int main() { int num; // declare int type variable double num2 = 15.25; // declare and assign the double variable // use implicit type conversion to assign a double value to int variable num = num2; cout << ' The value of the int variable is: ' << num << endl; cout << ' The value of the double variable is: ' << num2 << endl; return 0; }
Išvestis
The value of the int variable is: 15 The value of the double variable is: 15.25
Aukščiau pateiktoje programoje num paskelbėme sveikojo skaičiaus tipą, o num2 - kaip dvigubo duomenų tipo kintamąjį, o tada priskyrėme num2 kaip 15,25. Po to kintamajam num, naudodami priskyrimo operatorių, priskiriame num2 reikšmę. Taigi, C++ kompiliatorius automatiškai konvertuoja dvigubą duomenų reikšmę į sveikojo skaičiaus tipą, prieš priskirdamas ją kintamajam num ir išspausdina sutrumpintą reikšmę kaip 15.
Aiškus tipo konvertavimas
Konversijos, kurioms reikia vartotojo įsikišimas Norėdami pakeisti vieno kintamojo duomenų tipą į kitą, vadinamas aiškaus tipo konvertavimas . Kitaip tariant, aiškus konvertavimas leidžia programuotojui rankiniu būdu pakeisti arba perduoti duomenų tipą iš vieno kintamojo į kitą. Todėl jis taip pat žinomas kaip spausdinimas. Paprastai aiškaus tipo konvertavimą priverčiame konvertuoti duomenis iš vieno tipo į kitą, nes jis neatitinka numanomos konvertavimo taisyklės.
Aiškaus tipo konvertavimas skirstomas į du būdus:
šrifto dydžio lateksas
- Aiškus konvertavimas naudojant perdavimo operatorių
- Aiškus konvertavimas naudojant priskyrimo operatorių
Programa konvertuoti slankiąją vertę į int tipą naudojant cast operatorių
Cast operatorius: C++ kalboje cast operatorius yra vienetinis operatorius, kuris priverstinai konvertuoja vieną tipą į kitą tipą.
Panagrinėkime pavyzdį, kaip plūduriuojančių duomenų tipą konvertuoti į int tipą, naudojant aiškaus konvertavimo C++ kalbos operatorių.
Program3.cpp
#include using namespace std; int main () { float f2 = 6.7; // use cast operator to convert data from one type to another int x = static_cast (f2); cout << ' The value of x is: ' << x; return 0; }
Išvestis
The value of x is: 6
Programa konvertuoti vieną duomenų tipą į kitą naudojant priskyrimo operatorių
Panagrinėkime pavyzdį, kaip konvertuoti vieno kintamojo duomenų tipą į kitą, naudojant priskyrimo operatorių programoje C++.
Program4.cpp
#include using namespace std; int main () { // declare a float variable float num2; // initialize an int variable int num1 = 25; // convert data type from int to float num2 = (float) num1; cout << ' The value of int num1 is: ' << num1 << endl; cout << ' The value of float num2 is: ' << num2 << endl; return 0; }
Išvestis
The value of int num1 is: 25 The value of float num2 is: 25.0