logo

Zadejte převod v C++

V tomto tématu probereme převod jednoho datového typu na jiný v programovacím jazyce C++. Konverze typu je proces, který převádí předdefinovaný datový typ jedné proměnné na vhodný datový typ. Hlavní myšlenkou konverze typů je převést dvě různé proměnné datového typu do jediného datového typu, aby bylo možné snadno řešit matematické a logické výrazy bez ztráty dat.

Zadejte převod v C++

Například přidáváme dvě čísla, kde jedna proměnná je typu int a druhá typu float; potřebujeme převést nebo přetypovat proměnnou int na float, aby byly oba typy dat float, abychom je mohli přidat.

Převod typů lze v C++ provést dvěma způsoby, jedním z nich je implicitní konverze typu , a druhý je explicitní převod typu . Tyto konverze jsou prováděny samotným kompilátorem, nazývaným implicitní typ nebo automatická konverze typu. Konverze, kterou provádí uživatel nebo která vyžaduje zásahy uživatele, nazývaná explicitní nebo uživatelsky definovaný typ konverze. Pojďme diskutovat o implicitní a explicitní konverzi typů v C++.

Implicitní převod typu

Implicitní typ konverze je typ konverze, kterou provádí automaticky kompilátor bez jakéhokoli lidského úsilí. To znamená, že implicitní konverze automaticky převede jeden datový typ na jiný na základě některých předdefinovaných pravidel kompilátoru C++. Proto je také známý jako automatická konverze typu .

array.sort v jazyce Java

Například:

 int x = 20; short int y = 5; int z = x + y; 

Ve výše uvedeném příkladu existují dvě různé proměnné datového typu, x a y, kde x je typ int a y je datový typ short int. A výsledná proměnná z je také celočíselný typ, který ukládá proměnné x a y. Kompilátor C++ však automaticky převede nižší hodnotu datového typu (short int) na vyšší typ (int), než vznikne součet dvou čísel. Vyhne se tak ztrátě dat, přetečení nebo ztrátě znaménka při implicitní konverzi typu C++.

Pořadí typového obsazení v implicitní konverzi

Následuje správné pořadí datových typů od nižší úrovně k vyšší úrovni:

 bool -> char -> short int -> int -> unsigned int -> long int -> unsigned long int -> long long int -> float -> double -> long double 

Program pro převod typu int na typ float pomocí implicitní konverze typu

Vytvořme program pro převod menších datových typů na vyšší typy pomocí implicitní konverze typů.

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; } 

Výstup

 The value of num1 is: 25 The value of num2 is: 25 

Program pro konverzi datového typu double na int pomocí implicitní konverze typu

Vytvořme program pro převod vyššího datového typu na nižší pomocí implicitní konverze typu.

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; } 

Výstup

jak velká je obrazovka mého počítače
 The value of the int variable is: 15 The value of the double variable is: 15.25 

Ve výše uvedeném programu jsme deklarovali num jako celočíselný typ a num2 jako proměnnou typu double a poté jsme přiřadili num2 jako 15.25. Poté přiřadíme hodnotu num2 proměnné num pomocí operátoru přiřazení. Kompilátor C++ tedy automaticky převede hodnotu double dat na typ celé číslo, než ji přiřadí proměnné num a vytiskne hodnotu zkrácení jako 15.

Explicitní konverze typu

Konverze, které vyžadují zásah uživatele pro změnu datového typu jedné proměnné na jinou se nazývá explicitní převod typu . Jinými slovy, explicitní převod umožňuje programátorovi ručně změnit nebo přetypovat datový typ z jedné proměnné na jiný typ. Proto je také známý jako typové obsazení. Obecně vynucujeme převod explicitního typu k převodu dat z jednoho typu na jiný, protože nedodržuje implicitní pravidlo převodu.

Konverze explicitního typu se dělí na dva způsoby:

  1. Explicitní převod pomocí operátoru cast
  2. Explicitní převod pomocí operátoru přiřazení

Program pro převod hodnoty float na typ int pomocí operátoru cast

Operátor castingu: V jazyce C++ je operátor přetypování unární operátor, který násilně převádí jeden typ na jiný.

Uvažujme příklad převodu datového typu float na typ int pomocí operátoru cast explicitního převodu v jazyce C++.

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; } 

Výstup

 The value of x is: 6 

Program pro převod jednoho datového typu na jiný pomocí operátoru přiřazení

Uvažujme příklad převodu datového typu jedné proměnné na jinou pomocí operátoru přiřazení v programu 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; } 

Výstup

 The value of int num1 is: 25 The value of float num2 is: 25.0