logo

Преобразуване на типове в C++

В тази тема ще обсъдим преобразуването на един тип данни в друг в езика за програмиране C++. Преобразуването на тип е процесът, който преобразува предварително дефинирания тип данни на една променлива в подходящ тип данни. Основната идея зад преобразуването на тип е да се преобразуват две различни променливи на тип данни в един тип данни, за да се решават лесно математически и логически изрази без загуба на данни.

Преобразуване на типове в C++

Например, добавяме две числа, където една променлива е от тип int, а друга от тип float; трябва да преобразуваме или да преобразуваме променливата int във float, за да направим и двата типа данни float, за да ги добавим.

Преобразуването на типове може да се извърши по два начина в C++, единият е неявно преобразуване на типа , а второто е явно преобразуване на типа . Тези преобразувания се извършват от самия компилатор, наречен имплицитен тип или автоматично преобразуване на типа. Преобразуването, което се извършва от потребителя или изисква намеса на потребителя, се нарича изрично или дефинирано от потребителя преобразуване на тип. Нека обсъдим неявното и явното преобразуване на типове в C++.

Неявно преобразуване на типове

Неявното преобразуване на типа е типът преобразуване, извършвано автоматично от компилатора без никакви човешки усилия. Това означава, че имплицитното преобразуване автоматично преобразува един тип данни в друг тип въз основа на някои предварително дефинирани правила на C++ компилатора. Следователно, той е известен също като автоматично преобразуване на типа .

Например:

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

В горния пример има две различни променливи за тип данни, x и y, където x е int тип, а y е от short int тип данни. И получената променлива z също е целочислен тип, който съхранява променливи x и y. Но C++ компилаторът автоматично преобразува стойността на типа данни от по-нисък ранг (short int) в по-висок тип (int), преди да получи сумата от две числа. По този начин се избягва загуба на данни, препълване или загуба на знак при имплицитно преобразуване на тип на C++.

низ в масив c

Ред на привеждането на типа при имплицитно преобразуване

Следва правилният ред на типовете данни от по-нисък към по-висок ранг:

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

Програма за преобразуване на int в тип float, използвайки имплицитно преобразуване на тип

Нека създадем програма за преобразуване на типове данни с по-малък ранг в типове с по-висок, използвайки имплицитно преобразуване на типове.

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

Изход

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

Програма за преобразуване на тип данни double в тип int, използвайки имплицитно преобразуване на тип

Нека създадем програма за преобразуване на по-висок тип данни в по-нисък тип, използвайки имплицитно преобразуване на типове.

Program2.cpp

java низът е празен
 #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; } 

Изход

 The value of the int variable is: 15 The value of the double variable is: 15.25 

В горната програма сме декларирали num като цяло число и num2 като двойна променлива за тип данни и след това сме присвоили num2 като 15.25. След това присвояваме стойност num2 на променлива num с помощта на оператора за присвояване. И така, C++ компилатор автоматично преобразува двойната стойност на данните в целочислен тип, преди да я присвои на променливата num и да отпечата съкратената стойност като 15.

Изрично преобразуване на типа

Конверсии, които изискват потребителска намеса за промяна на типа данни на една променлива в друга, се нарича явно преобразуване на типа . С други думи, изричното преобразуване позволява на програмиста ръчно да промени или да преобразува типа данни от една променлива в друг тип. Следователно, той е известен също като typecasting. Като цяло ние принуждаваме изричното преобразуване на тип да преобразува данни от един тип в друг, защото не следва правилото за имплицитно преобразуване.

Изричното преобразуване на типа е разделено на два начина:

  1. Изрично преобразуване с помощта на оператора за преобразуване
  2. Изрично преобразуване с помощта на оператора за присвояване

Програма за преобразуване на плаваща стойност в int тип с помощта на оператора за прехвърляне

Каст оператор: В езика C++ операторът за прехвърляне е унарен оператор, който принудително преобразува един тип в друг тип.

java добавя низ

Нека разгледаме пример за преобразуване на типа данни float в тип int, използвайки оператора за преобразуване на явното преобразуване в езика 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; } 

Изход

 The value of x is: 6 

Програма за преобразуване на един тип данни в друг с помощта на оператора за присвояване

Нека разгледаме пример за преобразуване на типа данни на една променлива в друга с помощта на оператора за присвояване в програмата на 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; } 

Изход

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