티스토리 뷰

Java & Kotlin

Java Type AutoCasting

필자A 2022. 7. 25. 21:19

 

 

의외로 숨겨진 규칙이 많은

자동 형 변환(type autoCasting)#️⃣

 

 

 

 

산술 혹은 대입시 컴파일러가 수행하는 타입 변환

작은 크기의 타입에 저장된 값을

큰 크기의 타입에 저장할 때 자동으로 발생된다.

 

 

타입을 크기순으로 정렬하였습니다.(단위  byte)

 

          byte(1) - char(2) - short(2) - int(4) - long(8) - float(4) - double(8)

 

 

좌측에서 우측으로의 묵시적 변환은 가능하지만 역순은 불가능합니다.(명시적 변환 제외)

float과 double은 부동소수점 표현방식을 사용하므로 더 큰 범위를 표현할 수 있습니다.

 

 

몇 가지 예시와 함께 설명하겠습니다.

 

 

1. 정수형

 

int(4byte) -> long(8byte) 더 큰집(타입)으로 묵시적으로 변환되어 할당된다.

 

 

 

long(8byte) -> int(4byte) 더 작은집(타입)으로는 컴파일되지 않는다.

 

 

 

compile시 아래와 같은 문구가 뜬다.

 

 

 

 

 

 

2. 실수형

 

정수에서 실수로의 변환은 뒤에 ". 0"이 붙은 채로 캐스팅됩니다.

정수형에서 설명처럼 반대의 경우는 허용되지 않습니다.

 

 

 

3. 문자형

 

char type을 정수형으로 변환 시 unicode값이 저장됩니다.

해당 포스팅과는 관련 없지만 chartype은 모든 unicode를 표현 가능합니다.(unicode = 2byte)

 

 

해당 결과로 65가 출력됩니다.

 

 

실수형으로도 변환이 가능하며 65.0으로 출력이 됩니다.

 

 

0 ~ 65535(unicode)의 범위를 가진 char type에

-128 ~ 127의 범위인 byte type은 auto casting을 막아두었습니다.

 

*

unicode의 number와 매핑된 char를 볼 수 있는 사이트입니다.

https://www.techonthenet.com/unicode/chart.php

 

Unicode

Unicode Unicode is an International character encoding standard that includes different languages, scripts and symbols. Each letter, digit or symbol has its own unique Unicode value. Unicode is an extension of ASCII that allows many more characters to be r

www.techonthenet.com

 

byte type에서 char type으로 명시적 변환을 하면?

 

char는 부호 없는 16bit 정수입니다.

 

negative value given to char prints '?'

https://coderanch.com/t/265284/certification/Explanation-required-negative-char-prints

 

Explanation required - negative value given to char prints '?' (OCPJP forum at Coderanch)

 

coderanch.com

 

대략적으로 요약하자면 negative numuber는 positive number로 해석됩니다.

반응형

'Java & Kotlin' 카테고리의 다른 글

Java Lambda Expression  (0) 2022.07.26
Java Arithmetic Operator  (0) 2022.07.25
java primitive type  (0) 2022.07.23
Java Equals, HashCode  (0) 2022.07.17
kotlin 기본 사용법  (0) 2022.07.16
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함