Java05 :: [윤열프] Operators
본 내용은 윤성우의 열혈 프로그래밍 관련 책에서 학습한 내용을 정리한 것입니다.
* 연산자 순위
* / % 모두 같은 순위다. => 진행 방향이다.
그외는 모두 찾아보면 된다.
* 나눗셈과 나머지
나눗셈과 나머지는 큰 수에 한 자리씩 catch 할때도 유용하고 여러모로 쓰이는 곳이 많다.
% 나머지 / 몫
* 복합 대입 연산자
쉽게 한문장으로 쓸 수 있다. 예를 들면, a = a+b 를 a+=b 로 쓸 수 있다.
* 관계 연산자
<=, >= 익히면 될듯 하다.
* 논리 연산자
&& , ||, !
* Short - Circuit Evaluation
&&, || 연산자를 쓰면 발생하는 문제로
(num2 -= 10) && (num2+=29) >0
앞에서 이미 false 이면 뒤에는 나가게 된다. 또,
(num1+=20)>0 || (num1 += 25) >0
앞에서 이미 true이면 뒤에는 나가게 된다.
따라서 이부분을 주의할 필요가 있다.
* 부호 연산자
부호를 붙임으로써 수학적인 의미와 동일하다.
* Postfix ++, Postfix --
피연산자에 저장된 값을 1증가, 감소 를 체크한다.
* 비트를 대상으로 하는 연산자들
& = and
| = or
^ = xor
~ = not
xor은 두 비트가 다를때만 1을 반환한다.
* 비트 쉬프트(Shift) 연산자 : <<, >>, >>>
특히 주의해서 봐야 할것은, System.out.print((byte)(num<<1) + " "); 시 값이 두배로 늘어나게 된다.
알고리즘에서도 많이 사용되니 익혀두면 좋을 것 같다.
1. 보수구하기 (~ 이용)
~ 를 취하고, +1 한다. 2의보수 개념을 그대로 채용한다.
2. int형 정수 15678 오른쪽으로부터 3, 5 비트를 확인
모르겠다. 해설을 여러번 봐도 15678을 byte로 나타내면 2의 10승을 넘는데
>> 2 만 해서 5번째 자릿수를 확인할 수 있는건가.
결과적으로 정답은 num>>2 & 1 가 된다고 카더라. 여러번 보면 익숙해질려나..
'Java' 카테고리의 다른 글
Java07 :: Map - keySet(), ContainsKey (0) | 2020.02.08 |
---|---|
Java06 :: [윤열프]실행 흐름의 컨트롤 (0) | 2019.03.01 |
Java04 :: [윤열프]제네릭1-2 (0) | 2019.02.28 |
Java03 :: [윤열프]제네릭1 (0) | 2019.02.25 |
Java02 :: [윤열프]자바의 기본 클래스 (0) | 2019.02.22 |
댓글
이 글 공유하기
다른 글
-
Java07 :: Map - keySet(), ContainsKey
Java07 :: Map - keySet(), ContainsKey
2020.02.08 -
Java06 :: [윤열프]실행 흐름의 컨트롤
Java06 :: [윤열프]실행 흐름의 컨트롤
2019.03.01 -
Java04 :: [윤열프]제네릭1-2
Java04 :: [윤열프]제네릭1-2
2019.02.28 -
Java03 :: [윤열프]제네릭1
Java03 :: [윤열프]제네릭1
2019.02.25