기본형 타입 형변환

안녕하세요~

오늘 하루도 하루 공부를 마치고 간단하게 정리할 겸 글을 끄적끄적!!

대표 사진

사진 설명을 입력하세요.

오늘은 기본형 타입을 갖는 변수 및 리터럴 타입을 다른 타입으로 변환하는 것에 대해서 공부했습니다.!!

실제로 이와 같은 내용은 앞으로 다형성이라는 강력한 힘을 갖고 있는 객체지향 언어에 참조형 변수를 공부하는데도 밑바탕이 될 것이라 생각됩니다.

그럼 이제 형변환은 어떻게 할 수 있는지 한번 정리해보겠습니다.

아차!! 그 전에 간단하게 기본형 변수 타입에는 어떤 것들이 있는지 아래 표를 참조해봤습니다.

대표 사진

참조: http://sexy.pe.kr/tc/236

자!! 그럼 이제 타입은 어떤 것들이 있는지도 살펴봤으니 본격적으로 형 변환은 어떻게 할 수 있는지 한번 보도록 합시다!!

먼저 살펴볼 것은 자동 형변환(=promotion)입니다. 다른 말로는 암묵적 형 변환이라고도 불릴 수 있다는 점..!

자 그럼 백문이 불여일견이라고 어떻게 하는 것인지 직접 보도록 하겠습니다.

대표사진 삭제

자동 형 변환 예시

간단하게 정수형으로 표현할 수 있는 최대의 값을 저장하고 여기에 1만 더해져도 오버플로우가 발생하여 값이 표현할 수 있는

가장 작은 값인 음수로 바뀌었습니다.

그러나 bb의 결과를 보면 1이 더해져도 값이 잘 나오는 것을 확인할 수 있습니다.

정리하면 상대적으로 더 작은 형 타입을 더 큰 타입을 갖는 변수에 할당해주었을 경우 자동으로

더 큰 타입으로 변환되는 것을 확인할 수 있습니다.

그럼 반대의 경우는 어떨까요??

 

전송 중...

사진 설명을 입력하세요.

실행!!

앗!!!! 형 변환 에러가 발생했네요...ㅜ

이처럼 상대적으로 큰 타입을 갖는 변수를 작은 타입에 할당할 수가 없습니다..

그럼 나는 큰 놈이 될 수 없는 건가...ㅜ..ㅜ

그래서 바로 다음으로 살펴볼 것이 강제 형 타입 변환인 cating입니다.

어떻게 하는 것이냐?

전송 중...

강제 형 변환 예시

그냥 앞에 형 타입 하나 넣어줬을 뿐인데 가능해지는 것을 볼 수 있습니다. 이게 바로 강제로 형을 맞춰주는 cating입니다.

그런데, 여기서 한 가지 눈치가 있다면 발견할 수 있는 것이 있죠??

aa 변수에는 실수형 타입(double)으로 표현할 수 있는 최대 값을 받았기 최대치를 출력하고 있죠?

그런데 동일한 값을 bb에 넣었지만 다른 값으로 나타나는 것을 발견할 수 있죠?

여기서 casting은 어떤 것인가 한번 생각해볼 수 있는 Time이었습니다.

Casting을 하는 것은 말 그대로 변환하고자 하는 타입만큼 byte 공간을 할당하고 그 범위 내에서 표현 가능한 수는 담지만

그 이상이 되어 공간이 더 필요할 경우 가차 없이 그냥 버리고 표현할 수 있는 범위로만 표현해 버리는 것이죠.

사실상, 정밀한 값이나 어머어마하게 큰 값을 다뤄야 할 때를 제외하고는 크게 지장은 없다만

내가 만약 필요할 경우는 이러한 부분도 좀 생각해봐야겠죠?

 

여기까지 오늘 배운 내용들을 실습도 해보고 정리도 해보면서 하루 공부 끝!!!

전송 중...

사진 설명을 입력하세요.

 

'P.L > Java' 카테고리의 다른 글

java.util.Arrays 클래스를 활용한 배열복사  (0) 2023.01.19
String 클래스 - repeat()  (0) 2022.12.20
스트림(Stream) 개요  (0) 2022.06.06
기본형 데이터 타입  (0) 2020.08.02
콘솔에 입`출력 하는 방법?  (0) 2020.08.02