728x90
- 연산자의 우선순위
우선순위 | 연산자 | 설명 | 결합 방향 |
1 | [] . | 첨자, 멤버 연산자 | 왼 -> 오 |
2 | ++ -- | 후위 증가/감소 연산자 | 왼 -> 오 |
3 | ! ~ + - ++ -- (타입) | 논리/비트 NOT, 단항, 전위 증가/감소, 타입 캐스트 연산자 | 오 -> 왼 |
4 | * / % | 곱셈, 나눗셈, 나머지 연산자 | 왼 -> 오 |
5 | + - | 덧셈, 뺄셈 연산자 | 왼 -> 오 |
6 | << >> >>> | 비트 왼쪽/오른쪽 시프트, 부호 비트까지 모두 오른쪽 시프트 | 왼 -> 오 |
7 | < <= > >= instance of | 관계 연산자, 인스턴스의 실제 타입 반환 | 왼 -> 오 |
8 | == != | 관계 연산자 | 왼 -> 오 |
9 | & | 비트 AND 연산자 | 왼 -> 오 |
10 | ^ | 비트 XOR 연산자 | 왼 -> 오 |
11 | | | 비트 OR 연산자 | 왼 -> 오 |
12 | && | 논리 AND 연산자 | 왼 -> 오 |
13 | || | 논리 OR 연산자 | 왼 -> 오 |
14 | ? : | 삼항 조건 연산자 | 오 -> 왼 |
15 | = | 대입 및 복합 대입 연산 | 오 -> 왼 |
산술 > 시프트 > 관계 > 비트 > 논리 > 대입
- Math 클래스 메서드
- round() : 실수를 소수점 첫 째자리에서 반올림한 정수를 반환
- ceil() : 올림값을 double 형으로 반환
- floor() : 내림값을 double 형으로 반환
- abs() : int, double 기본형 모두 사용 가능하며 절대값을 얻음
class Operator5_1 {
public static void main(String[] args) {
long result = Math.round(3.645678);
System.out.println("result = " + result);
// 소수점 4째 자리에서 반올림한 값을 구하라!
double pi = 3.141592;
// pi * 1000 = 3141.592
// Math.round(3141.592) = 3142
// 3142 / 1000.0 = 3.142
double shortPi = Math.round(pi * 1000) / 1000.0;
System.out.println(shortPi); // 3.142
// 3.141 구하기!
double pi2 = 3.141592;
// pi2 * 1000 = 3141.592
// (int)3141.592
System.out.println("(int)(pi2 * 1000) = " + (int) (pi2 * 1000));
System.out.println("(int)(pi2 * 1000) / 1000.0 = " + (int) (pi2 * 1000) / 1000.0);
}
}
class Operator5_2 {
public static void main(String[] args) {
double num = 3.14;
System.out.println("반올림 : " + Math.round(num)); // 반올림 : 3
System.out.println("올림 : " + Math.ceil(num)); // 올림 : 4.0
System.out.println("내림 : " + Math.floor(num)); // 내림 : 3.0
System.out.println("절대값 : " + Math.abs(num*-1)); // 절대값 : 3.14
}
}
- 문자열의 비교: equals() 사용
class Operator6_2 {
public static void main(String[] args) {
String s1 = "사랑";
String s2 = "사랑";
System.out.print("s1 == s2 = "); // true
System.out.println(s1 == s2);
System.out.println("s1.equals(s2) = " + s1.equals(s2)); // true
// 하지만!
String s3 = new String("사랑");
System.out.print("s1 == s3 = "); // false
System.out.println(s1 == s3);
System.out.println("s1.equals(s3) = " + s1.equals(s3)); // true
}
}
- 2진수의 음수 표현
x의 1의 보수: 11111111 - x, x를 반전시킨 것과 같음
x의 2의 보수: 100000000 - x, x의 1의 보수에 +1한 값
x가 양수일 때 -x를 2진수를 표현하려면? x의 2의 보수!