[Java] 자바 #5 Casting(형변환)

Casting(형변환)


형변환, 자료형 변환, Type Casting

- A라는 자료형을 B라는 자료형으로 바꾸는 작업.

- ex) (B)A; -> ()소괄호를 "형변환 연산자"라고 한다.


1. 암시적 형변환

- 1칸 => 2칸..

- 작은형 => 큰형

- 100% 안전한 작업!


1
2
3
4
5
6
7
8
9
class HelloWorld
{
    public static void main(String[] args){
        byte b1 = Byte.MIN_VALUE;   //원본
        short s1;            //복사본
 
        s1 = /*(short)*/b1; // b1앞에 (short)가 생략된 표현임.
    }
}
cs

2. 명시적 형변환

l1 = 1000;

n1 = (int)l1;

s1 = (short)l1;

b1 = (byte)l1;


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
class HelloWorld
{
    public static void main(String[] args){
        byte b1;        short s1;
        int n1;
        long l1;
        //암시적 형변환
        b1=10;
        s1=b1;    n1=b1;    l1=b1;
        System.out.printf("s1 : %d\nn1 : %d\nl1 : %d\n",s1,n1,l1);
/*
    s1 : 10    
    n1 : 10
    l1 : 10
*/         
    
        //명시적 형변환
        l1=1000;
        n1=(int)l1;
        s1=(short)l1;
        b1=(byte)l1;
        
        System.out.printf("s1 : %d\nn1 : %d\nl1 : %d\n",s1,n1,b1);
        /*
    s1 : 1000
    n1 : 1000    
    l1 : -24*/
    }
}
cs


< 실수형끼리 형변환 >

float f1 = 1.23F; //원본

double d1 = f1;

System.out.printf("d1 : %.2f\n",d1);   -> [d1 : 1.23]


d1=3.12; //원본

f1=(float)d1;

System.out.printf("f1 : %.2f\n",f1);   ->  [f1 : 3.12]


< 다른자료형끼리 형변환 (정수->실수, 실수-> 정수, 등) >


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class HelloWorld
{
    public static void main(String[] args){
        //(정수 => 실수)        
        int n2;
        double d2;
 
        n2=123;
        d2=n2;
        System.out.println(d2); //변수를 실수로 형변환     ->    [123.0]
        System.out.println((double)321); //상수를 실수로 형변환    -> [321.0]
        System.out.println(321D);    //  -> [321.0]
        System.out.println(321.0);   // ->  [123]
 
        //(실수 => 정수)
        d2 = 123.656//실수의 정수화 -> 버림.
        n2=(int)d2;
        System.out.println(n2);    //-> [123]    
    }
}
cs


char(정수형)

 -char는 정수형 자료형과의 형변환만 지원한다.(byte(x), short(x), int, long)

 -char는 실수형과는 형변환을 안한다.


문자 코드값

- A : 65 / a : 97

- 0 ~ 9 : 48~57(유니코드)

- \r : 13   \n : 10   \t : 9

- 가(44032) ~ 힣(55203)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class HelloWorld
{
    public static void main(String[] args){
        System.out.println((int)'A');    // 65        
        System.out.println((int)'Z');    // 90
        System.out.println((int)'a');    // 97
        System.out.println((int)'z');    // 122
        System.out.println((int)'0');    // 48
        System.out.println((int)'9');    // 57
        System.out.println((int)'\r');    // 13
        System.out.println((int)'\n');    // 10
        System.out.println((int)'\t');    //  9
        System.out.println((int)'가');    //44032
        System.out.println((int)'힣');    //55203    
    }
}
cs


'프로그래밍 언어 > Java' 카테고리의 다른 글

[Java] 자바 #7 에러 종류  (0) 2019.02.02
[Java] 자바 #6 연산자  (0) 2019.02.02
[Java] 자바 #4 콘솔 입출력 해보기  (0) 2019.02.01
[Java] 자바 #3 Escape  (0) 2019.01.31
[Java] 자바 #2 자료형과 변수  (0) 2019.01.31

댓글

Designed by JB FACTORY