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++의 암시적 유형 변환 시 데이터 손실, 오버플로 또는 부호 손실을 방지합니다.

암시적 변환의 타입캐스트 순서

다음은 낮은 순위에서 높은 순위로 데이터 유형의 올바른 순서입니다.

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

암시적 유형 변환을 사용하여 int를 float 유형으로 변환하는 프로그램

암시적 유형 변환을 사용하여 더 작은 순위의 데이터 유형을 더 높은 유형으로 변환하는 프로그램을 만들어 보겠습니다.

프로그램1.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; } 

산출

CSS 중앙 버튼
 The value of num1 is: 25 The value of num2 is: 25 

암시적 유형 변환을 사용하여 double을 int 데이터 유형으로 변환하는 프로그램

암시적 유형 변환을 사용하여 상위 데이터 유형을 하위 유형으로 변환하는 프로그램을 작성해 보겠습니다.

프로그램2.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; } 

산출

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

위 프로그램에서는 num을 정수형으로 선언하고 num2를 double 데이터형 변수로 선언한 후 num2를 15.25로 할당했습니다. 그런 다음 할당 연산자를 사용하여 num2 값을 num 변수에 할당합니다. 따라서 C++ 컴파일러는 double 데이터 값을 num 변수에 할당하기 전에 자동으로 정수 유형으로 변환하고 잘린 값을 15로 인쇄합니다.

명시적 유형 변환

필요한 전환 사용자 개입 한 변수의 데이터 유형을 다른 변수로 변경하는 것을 명시적 유형 변환 . 즉, 명시적 변환을 통해 프로그래머는 데이터 유형을 한 변수에서 다른 유형으로 수동으로 변경하거나 유형 변환할 수 있습니다. 따라서 이를 타입캐스팅이라고도 합니다. 일반적으로 명시적 유형 변환은 암시적 변환 규칙을 따르지 않기 때문에 한 유형에서 다른 유형으로 데이터를 변환하도록 강제합니다.

명시적 유형 변환은 두 가지 방법으로 나뉩니다.

  1. 캐스트 연산자를 사용한 명시적 변환
  2. 할당 연산자를 사용한 명시적 변환

캐스트 연산자를 사용하여 float 값을 int 유형으로 변환하는 프로그램

캐스트 연산자: C++ 언어에서 캐스트 연산자는 한 유형을 다른 유형으로 강제 변환하는 단항 연산자입니다.

C++ 언어에서 명시적 변환의 캐스트 연산자를 사용하여 float 데이터 유형을 int 유형으로 변환하는 예를 고려해 보겠습니다.

프로그램3.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++ 프로그램에서 할당 연산자를 사용하여 한 변수의 데이터 유형을 다른 변수로 변환하는 예를 고려해 보겠습니다.

프로그램4.cpp

char 및 int 자바
 #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