본문 바로가기
IT관련/Java

[확고의 쓱~ 훑어보는 기록] JAVA - 자료형과 기본 입출력(2)

by 확고 2022. 7. 17.
728x90
반응형
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
public class exam2 {
    public static void main(String[] args) {
    
    System.out.println("====정수형 자료형====");
    byte b10=1;//★ byte 크기 : 1byte / 표현 범위 : -128 ~ 127
    short s10=20;//★ short 크기 : 2byte / 표현 범위 : -32,768 ~ 32,767
    int i10;//★ int 크기 : 4byte / 표현 범위 : -21억 ~ 21억 대
            //-2,147,483,648 ~ 2,147,483,647
    long l10;//★ long 크기 : 8yte / 표현 범위 : -900경 ~ 900경 대
             //-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
    
    b10 = (byte)s10;//★ 2바이트 공간인(s10)을 1바이트 공간에(b10) 넣고 싶으면
                    //★ 앞에 (byte)붙여서 (1)강제적 형변환을 시킴. 2바이트 공간 값 20 출력됨
                    //★ (1)강제적 형변환 : 강제로 형 변환 처리를 하는 것 (묵시적 형변환과 반대)
    System.out.println("b10:"+b10);//▶ b10:20
    
    byte b1=10;
    byte b2=20;
    System.out.println("b1+b2="+(b1+b2));//▶ b1+b2=30
    
    //★ 바이트끼리 연산한 결과를 담을 때 바이트에 담을 수 없음!((2)묵시적 형변환이 일어나기 때문)
    //★ (2)묵시적 형변환 : 크기가 작은 유형에서 큰 유형으로 자동 변환되는 것
    //byte b3;
    //Type mismatch : cannot convert from int to byte (유형불일치 오류)
    int b3;
    b3 = b1 + b2;
    System.out.println("b1+b2="+b3);//▶ b1+b2=30
    
    /*
    
    byte + byte → int
    short + byte → int
    short + short → int
    char + char → int  
     
    */
    
    int x = 1000000;
    int y = 2000000;
    
    int z = x * y ;
    //2,000,000,000,000 : 2조가 나와야 하는데 int 표현 범위를 초과하기 때문에 이상한 값이 출력됨 
    System.out.println("z:"+z);//▶ z:-1454759936
 
    long z2 = x * y;
    System.out.println("z2:"+z);//▶ z2:-1454759936
    //★ 2조를 담을 수 있는 long에 넣기 전에 연산 결과가 4바이트 공간에 들어가므로
    //★ 먼저 8바이트 공간에 2조가 들어갈 수 있게 해야 함(강제 형변환 필요)
    
    long z3 = (long)x * y;//x, y 둘 다 강제 형변환 해줘도되고 하나만 해줘도 되고~
    System.out.println("z3:"+z3);//▶ z3:2000000000000
    
    System.out.println("====문자형 자료형====");
    char ch1 = 'A';//★ char 크기 : 2byte / 표현 범위 : 0 ~ 65,535
    char ch2 = 'b';
    
    int ch3 = ch1 + ch2;//char 끼리 연산이니까 int에 담아야 함
    
    System.out.println("ch1:"+ch1);//▶ ch1:A
    System.out.println("ch2:"+ch2);//▶ ch2:b
    System.out.println("ch3:"+ch3);//▶ ch3:163
    System.out.println(ch1+1);//▶ 66
    //★ 모든 문자는 고유의 숫자를 갖고있음(아스키코드 값)
    System.out.println((char)(ch1+1));//▶ B
    
    System.out.println("====논리형 자료형====");
    boolean bool1 = true;//★ boolean 크기 : 1bit / 표현 범위 : true 또는 false
                         //★ boolean 기본값 : false
    boolean bool2 = false;
     
    bool1 = 5<10;
    System.out.println("bool1 : " + bool1);//▶ true
    
    System.out.println("===실수형 자료형===");
    float ft1 = 1.234f;
    //★ float 크기 : 4byte / 표현 범위 : -3.4E38 ~ + 3.4E38
    //★ float 기본값 : 0.0f / f를 뒤에 꼭 붙여줘야 4바이트 공간으로 잡음(안 쓰면 8바이트 공간)
    System.out.println("ft1:"+ft1);//▶ ft1:1.234
 
    float ft2 = 0.0987000f;
    System.out.println("ft2:" + ft2);//▶ ft2:0.0987
    
    float ft3 = 1.1234567890123456f;
    System.out.println("ft3:"+ft3);//▶ ft3:1.1234568
    //★ float : 소수점 아래 8번째 자리가 5이상이면 반올림돼서 7번째 자리까지 표시됨
    
    double d1 = 1.234;
    System.out.println("d1:"+d1);//▶ d1:1.234
    //★ double 크기 : 8byte / 표현 범위 : -1.7E308 ~ + 1.7E308
    
    double d2 = 1.1234567890123456789d;
    System.out.println("d2:"+d2);//▶ d2:1.1234567890123457
    //★ double : 소수점 아래 16번째 자리가 5이상이면 반올림돼서 15번째 자리까지 표시됨
    
    d2 = ft1;//4바이트 공간을 8바이트에 넣는 건 쉽지만
    ft1 = (float)d2;//8바이트 공간을 4바이트 공간에 넣으려면 강제 형변환 해야겠죠~
    System.out.println("ft1:"+ft1);//▶ ft1:1.234
    
    double d3 = .987E3;//0.987 * 10^3
    System.out.println("d3:" +d3);//▶ d3:987.0
 
    double d4 = .987E-2;//0.987 * 10^-2
    System.out.println("d4:" +d4);//▶ d4:0.00987
 
    int i=10;
    float f=1.2f;
    
    f = i;
    System.out.println("f:"+f);//▶ f:10.0
    
    i = (int)f;//★ int랑 float 똑같은 4바이트지만 float을 더 크게 봄.
    //★ 따라서 int에 그냥 안 담김. 강제 형변환 필요!
    System.out.println("i:"+i);//▶ i:10
    
    }
}
 
cs

 

▼ (이후 게시물) [확고의 쓱~ 훑어보는 기록] JAVA - 자료형과 기본 입출력(3)

 

[확고의 쓱~ 훑어보는 기록] JAVA - 자료형과 기본 입출력(3)

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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 imp..

j-growthdiary.tistory.com

▼ (첫 번째 게시물) [확고의 쓱~ 훑어보는 기록] JAVA - 자료형과 기본 입출력(1)

 

[확고의 쓱~ 훑어보는 기록] JAVA - 자료형과 기본 입출력(1)

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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 public class exam {     public static void main(Strin..

j-growthdiary.tistory.com

728x90
반응형

댓글