본문 바로가기
프로그래밍 언어/Java

연산자

by 진진리 2023. 9. 13.
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의 보수!

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

객체지향  (0) 2023.09.13
배열  (0) 2023.09.13
조건문과 반복문  (0) 2023.09.13
변수와 자료형  (0) 2023.09.13
자바 시작하기  (0) 2023.09.13