값의 형식을 다른 형식으로 변환시키는 것
literal형, 변수형도 가능하지만 boolean형은 불가능하다.
자동형변환 - 내부적형변환
몇 가지 규칙에 의하여 사용자가 아닌 시스템에서 자동으로 변환시키는 것
1. 정수 -> 실수
2. 크기가 작은 형 -> 크기가 큰 형
[참고]float형 4byte, long형 8byte의 경우 float형으로 변환된다.
강제형변환
형변환 연산자를 이용하여 변환하고자 하는 타입명을 준다.
C언어의 경우
서로 변수형이 다른 X = O 의 경우 무조건 X쪽의 형에 맞춘다.
Java의 경우
서로 변수형이 다른 X = O 의 경우 자동형변환이 될 수 있으면 자동형변환이되고
그렇지 않은 경우 컴파일 에러가 발생한다. 이것을 방지하기 위하여 강제형변환을 한다.
byte(1byte) -> short(2byte), char(2byte) -> int(4byte) -> long(8byte) -> float(4byte) -> double(8byte)
[참고]char형과 short는 길이는 같지만 내부적형변환이 없기 때문에 무조건 강제형변환을 해 주어야 한다.
literal형, 변수형도 가능하지만 boolean형은 불가능하다.
자동형변환 - 내부적형변환
몇 가지 규칙에 의하여 사용자가 아닌 시스템에서 자동으로 변환시키는 것
1. 정수 -> 실수
2. 크기가 작은 형 -> 크기가 큰 형
[참고]float형 4byte, long형 8byte의 경우 float형으로 변환된다.
강제형변환
형변환 연산자를 이용하여 변환하고자 하는 타입명을 준다.
C언어의 경우
서로 변수형이 다른 X = O 의 경우 무조건 X쪽의 형에 맞춘다.
Java의 경우
서로 변수형이 다른 X = O 의 경우 자동형변환이 될 수 있으면 자동형변환이되고
그렇지 않은 경우 컴파일 에러가 발생한다. 이것을 방지하기 위하여 강제형변환을 한다.
byte(1byte) -> short(2byte), char(2byte) -> int(4byte) -> long(8byte) -> float(4byte) -> double(8byte)
[참고]char형과 short는 길이는 같지만 내부적형변환이 없기 때문에 무조건 강제형변환을 해 주어야 한다.
댓글 없음:
댓글 쓰기