1. Java Study Chapter 02 변수 (variable) 와 자료형 (data type) Chapter 03 상수와 형 변환 (Type Casting) Chapter 04 연산자 (Operator) 2011.9.18 이진아
2.
3.
4.
5. 자료형 자료형 입력 데이터 저장된 값 메모리 크기 표현가능범위 boolean true/false 1/0 1 바이트 true, false char 문자 유니코드값 2 바이트 모든 유니코드 문자 byte 정수 코드화 된 2 진수 숫자 1 바이트 -128~127 short 2 바이트 생략 int 4 바이트 생략 long 8 바이트 생략 float 실수 4 바이트 생략 double 8 바이트 생략
6. 자료형 byte num1; 메모리에 num1 이라는 이름으로 8 비트 저장될 공간을 비워놔라 !! num1 = 5; num1 에 5(2)=0000101 를 저장해라 !! 0 0 0 0 0 1 0 1
7. 자료형 num1 = -5; num1 에 5 의 ‘ 2 의 보수’를 구해 저장해라 !! byte 에서 표현할 수 있는 값의 범위 (2^7) : -128~127 MSB 0 일 때 0, 1~127 MSB 1 일 때 -1~-128 1 1 1 1 1 0 1 1
8.
9.
10.
11. 변수와 자료형 변환 문제 1. 모두 한 메소드 안에 들어있을 때 , 오류가 나는 문장은 ? ① int x = 34.5; ② boolean boo = x; ③ int g = 17; ④ int y = g; ⑤ y = y + 10; ⑥ short s; ⑦ s = y; ⑧ byte b = 3; ⑨ byte v = b; ⑩ short n = 12; ⑪ v = n; ⑫ byte k = 128; ⑬ int p = 3 * g + y; ① int x = 34.5; ② boolean boo = x; ③ int g = 17; ④ int y = g; ⑤ y = y + 10; ⑥ short s; ⑦ s = y; ⑧ byte b = 3; ⑨ byte v = b; ⑩ short n = 12; ⑪ v = n; ⑫ byte k = 128; ⑬ int p = 3 * g + y;
12. 변수와 자료형 변환 문제 2. 연산 중에 자료형이 표현할 수 있는 범위를 넘어서면 어떻게 될까 ? byte num1=127, num2=2; byte result = num1+num2; 3. short 과 char 은 동일한 2byte 에 입력되지만 , 아래 구문을 입력하면 에러가 난다 . 왜 에러가 일어날까 ? short a=65; char b=a; char 에는 음수값 저장방법이 없다 . char->short 에 입력하려 할 때도 char 의 값이 short 보다 클 수 있으므로 데이터 손실의 위험이 있어 자동 형변환이 일어나지 않는다 .
13.
14.
15.
16. 연산자 1. = 는 대입연산자 , == 는 논리 연산자 A = 10; 10 을 A 에 넣어라 !! A == 10; A 랑 10 이 같니 ? 2. 정수에서 / 을 하면 소수점 아래 데이터를 잃고 몫만 구할 수 있다 . 소수점 아래의 값을 포함한 전체 몫과 나머지를 구하려면 실수형으로 변환 후 계산 int num = 3; System.out.println( (float)num/4 );
17. 연산자 3. SEC(Short-Circuit Evaluation) 빠르게 연산을 진행하기 위해서 일부 계산 과정을 무시하고 지나감 속도는 빠르지만 연산과정에서 값 저장이 되지 않을 수 있음 값 저장이 필요한 연산의 경우 변수에 미리 저장 후 연산 진행 num1+=10; num2+=10; result = num1<0 && num2<0 ; System.out.println("result="+result); num1+=10; num2+=10; result = num1>0 || num2<0 ; System.out.println("result="+result);
19. 연산자 5. 비트 연산 사람이 인식하는 데이터 1 이 아니라 저장된 실제 값 00000001 로 연산 - 정수만 가능 , 실수는 의미가 없음 - 비트 쉬프트 (<<, >>, >>>) 연산은 2 의 배수 단위로 값 증가 , 감소 - 속도를 위해 비트 연산자를 사용한다 산술 연산자를 사용하는 것보다 비트 연산이 기계 친화적이기 때문
20. 연산자 문제 1. 다음 논리 연산에 대한 내용을 설명하면 ? ① (a >= 10) && (a < 50) ② (a == 1) || (a == 100) ③ ! (a == 100) ① a 는 10 이상이고 50 미만이다 . ② a 는 1 또는 100 이다 . ③ a 는 100 이 아니다 . 2. 다음 내용을 조건식으로 표현 하면 ? ① b=0 또는 b=1 이 아니다 . ② b=0 이 아니고 b=1 도 아니다 . ③ b≠ 0 이고 , b≠1 다 . ① !((b==0) || (b==1)) ② !(b==0) && !(b==1) ③ (b!=0) && (b!=1)
21. 연산자 문제 3. 놀이기구를 타기 위한 아래의 조건을 조건식으로 표현하면 ? ( 연령 age, 신장 height, 건강한 상태 health, 보호자 동반 pg) - 6 세 이상 ( 단 , 신장 130cm 이상 보호자 동반 ) - 신장 130cm 이상 - 심장이 약한 사람은 조심 ( (age >= 6 && height >= 130) || (height >= 130 && pg) ) && health
22. 생각해 볼 부분 1. postfix 어떤 용도로 쓰일까 ? 2. 비트 연산의 장점은 속도 이외에 또 무엇이 있을까 ?