Type Conversion(형변환) - JAVA
형 변환은 치역(traget type)에 정의역(source type)의 값을 배정할 때 발생
확대(widening)형변환
- 치역(traget type)이 정의역(source type)보다 더 넓어 값의 손실이 발생되지 않고 저장.
예 : 8비트의 바이트 값을 32비트의 정수형으로 변환하는 경우
// 낮은 한계 값을 가진 형이 높은 한계 값을 가진 형으로 자동으로 변환
public class WideningTypeConversion {
public static void main(String[] args) {
short s=1; int i; long l;
float f; double d;
i = s; l = i;
System.out.println("s = " + s + " , i = " + i + " , l = " + l);
f = l; d = f;
System.out.println("f = " + f + " , d = " + d);
}
}
축소(narrowing)형변환
- 명시적은 형변환 구문을 사용해야 한다
(target-type) value
- 치역(traget type)이 정의역(source type)보다 좁아 값을 저장할 수 없는 경우.
예 : 32비트의 정수형 값을 8비트의 바이트 형으로 변환하면 정보의 손실이 발생
// 높은 한계 값을 가진 형을 낮은 한계 값을 가진 형으로 변환
public class NarrowingTypeConversion {
public static void main(String[] args) {
short s; int i; long l;
float f; double d=1.2345678912345678;
f = (float)d; // 명시적 형 변환
System.out.println("f = " + f + " , d = " + d);
l = (long)f; i = (int)l; s = (short)i; // 명시적 형 변환
System.out.println("s = " + s + " , i = " + i + " , l = " + l);
}
}
* 묵시적 형변환
-두 개의 다른 자료형을 가지고 연산을 수행 시에 묵시적으로 큰 한계 값을 가진 자료형으로 변환되어 구현
public class ExplicitTypeConversion {
public static void main(String[] args) {
int x;
float y, z;
char c='A';
x = 7 / 2;
y = (float) 7 / 2;
z = 7 / 2;
System.out.println("x = " + x + " y = " + y + " z = " + z);
c++;
System.out.println("c = " + c);
}
}
0 Responses to Type Conversion(형변환) - JAVA
Something to say?