연산자 우선순위
산술
>비교
>논리
>대입
- 연산자 여러개가 함께 있는 연산을 계산할 떄는 우선순위가 있다.
- 위 우선순위에 따라서 최종적인 응답값이 결정된다.
- 단, 괄호로 감싸주면 괄호 안의 연산이 최우선 순위로 계산된다.
package week02;
public class W07 {
public static void main(String[] args) {
// 기타 연산자
// (1) 형변환 연산자
int intNumber = 93 + (int)98.8;
System.out.println(intNumber);
double doubleNumber = (double) 93 + 98.8;
System.out.println(doubleNumber);
// (2) 삼항연산자
// 비교연산자와 항상 함께 쓰인다.
// 비교연산자의 결과 : true or false -> 이 결과의 값에 따라 결정되는 무언가!
// 조건 ? 참 : 거짓
int x = 1;
int y = 9;
boolean b = (x == y) ? true : false;
System.out.println(b);
String s = (x != y) ? "정답" : "오답";
System.out.println(s);
int max = (x > y) ? x : y;
System.out.println(max);
int min = (x < y) ? x : y;
System.out.println(min);
// (3) instance of(3주차 -> 클래스, 객체)
}
}
산술 연산자 타입일치
연산 전에 . 두피연산자의 타입이 다른 경우 타입을 일치시킨다.
- 두 피연산자의 타입을
- 피연산자의 타입이
int
보다 작은short
타입이면int
로 변환- 피연산자의 타입이
long
보다 작은int
,short
타입이면long
으로 변환- 피연산자의 타입이
float
보다 작은long
,int
,short
타입이면float
으로 변환- 피연산자의 타입이
double
보다 작은float
,long
,int
,short
타입이면double
으로 변환- 이처럼 변수 여러개를 연산했을 때 결과값은 피연산자 중 표현 범위가 가장 큰 변수 타입을 가지게 된다.
package week02;
public class W09 {
public static void main(String[] args) {
short x = 10;
int y = 20;
int z = x +y;
long lx = 30L;
long lz = z +lx;
float fx = x;
float fy = y;
float fz = z;
System.out.println(lz);
System.out.println(fx);
System.out.println(fy);
System.out.println(fz);
}
}
비트연산
Byte
를 8등분한 게BitBit
는 0,1 둘 중의 하나의 값만을 저장하는 컴퓨터가 저장(표현)가능한 가장 작은 단위- 컴퓨터의 가장 작은 단위인
Bit
이기 때문에 연산 중에서Bit
연산이 가장 빠름- 물론 이전에 배운대로 0,1값으로 산술연산을 하거나, 비교연산을 할 수 있지만, 비트 연산을 통해 자리수를 옮길 수도 있음
- 이처럼
Bit
의 자리수를 옮기는 것을 비트 연산이라고 함<<
왼쪽으로 자리수 옮기기,>>
오른쪽으로 자리수 옮기기- 0,1은 2진수 값이기 때문에 자리수를 왼쪽으로 옮기는 횟수만큼 2의 배수로 곱셈이 연산되는 것과 동일함
- 0,1은 2진수 값이기 때문에 자리수를 오른쪽으로 옮기는 횟수만큼 2의 배수로 나눗셈이 연산되는 것과 동일함
package week02;
public class W10 {
public static void main(String[] args) {
System.out.println(3 << 2);
System.out.println(3 << 1);
}
}
고등학교 때 컴퓨터일반에서 배운 내용인데도 약간 깨름칙해서 내일 복습을 해보려고 한다.