연산자 TIP

    팁 작성에 앞서, 개념을 알기는 하지만 놓칠 수 있는 부분들이나 다시 한 번 복기하면 좋을만 한 것들을 정리해둔 것이기 때문에

    처음 공부하시는 분들에게는 적절하지 않을 수 있습니다.

     

    연산자

     

    *문자열을 대소문자 구별 없이 같은지 판별하는 메소드

    → equalsIgonoreCase()

     

    *단항 연산자는 결합 방향이 오른쪽에서 왼쪽이다.

    Ex> !!(true) → !(false) → true

     

    *’조건 연산자’에서 피연산자의 타입이 다른 경우 이항 연산자처럼 산술 변환(자동 형변환)이 일어난다.

     

    *대입연산자 ‘=‘와 등가비교 연산자 ‘==‘는 평소에 접했던 수학에서의 의미가 다르므로 익숙해지도록 하자.

    → 보통 우리가 알던 ‘=‘이 코딩에서는 ‘==‘이고 코딩에서의 ‘=‘은 오른쪽 값을 왼쪽 피연산자에 저장하는 역할을 한다.

     

    *대입 연산자는가장 낮은 우선 순위를 가지고 있다.

     

    *변수 앞에 ‘final’ 키워드를 붙이면 상수처럼 값이 고정된다. 따라서 이후에 값 변경이 불가능하다.

    Ex> final int n = 13;

     

    *비트 연산자 : 비트 단위로 피연산자를 논리 연산한다.

    • & : AND 연산
    • | : OR 연산
    • ^ : XOR 연산
    • ~ : 토글 연산(비트 전환 연산)
    • >>, << : 쉬프트 연산

    → Ex> 4 << 2 : 00000100 → 00010000

     

    *2진수 표현법

    1) 부호 절대값

    2진수의 맨 앞자리가 부호 표시 역할을 한다.(0 :  +, 1 : -)

    Ex>

    5 : 0000 0101(2)

    -5 : 1000 0101(2)

    0 : 0000 0000(2), 1000 0000(2)

     

    2) 1의 보수 방식

    양수의 모든 자리 수를 반전 시킨 것이 음수이다.

    ‘(-2n-1) ~ (2n-1)’ 까지 표현 가능

    Ex>

    11 : 0000 1011(2)

    -11 : 1111 0100(2)

    127 : 0111 1111(2)

    -127 : 1000 0000(2)

    0 : 0000 0000(2), 1111 1111(2)

     

    3) 2의 보수 방식

    양의 2진수 ’n’을 음수로 바꾸기 위해서는 ‘1000000(2) - n(2)’을 해주면된다. 1의 보수 방식의 결과에 ‘1’을 더해주는 것과 동일하다.

    ‘(-2n) ~ (2n-1)’ 까지 표현 가능

    Ex>

    11 : 0000 1011(2)

    -11 : 1111 0101(2)

    127 : 0111 1111(2)

    -127 : 1000 0001(2)

    -128 : 1000 0000(2)

    0 : 0000 0000(2)

     

    *복합 대입 연산자

    i = i+ 3 을 i += 3 으로 표현 가능

    여기서 i *= j - 3 과 같은 경우는 i = i * (j - 3) 을 의미하므로 i = i * j - 3 으로 혼동하면 안된다.

     

    *float type(4byte)은 long type(8byte) 보다 표현 범위가 더 넓기 때문에 형변환이 생략 가능하다.

     

    *이항연산자는 피연산자가 ‘int 보다 작은 타입인 경우 int로 변환한 후에 연산을 수행한다.

    Ex> ‘C’-‘A’ → 67 - 65 → 2

     

    *float 타입의 리터럴에는 접미사 ‘f’를 꼭 붙여줘야 한다.(생략 불가능)

    double 타입의 경우 정수형에서 int 기본형인 것처럼 실수형에서는 double 기본형이기 때문에 생략 가능하다.

     

    반응형

    'Java > Grammar' 카테고리의 다른 글

    예외처리 TIP  (0) 2022.12.16
    객체지향언어 TIP (2)  (1) 2022.11.30
    객체지향언어 TIP (1)  (0) 2022.11.14
    배열 TIP  (0) 2022.11.04
    조건문 & 반복문 TIP  (0) 2022.10.24

    댓글