[ch 01. 11 대입, 부호, 산술, 복합대입, 증감연산자]
//알아두면 좋을부분만 기록 함
항과 연산자
- 항(operand) : 연산에 사용되는 값
- 연산자 (operator) : 항을 이용하여 연산하는 기호
대입 연산자 (assignment operator)
- 변수에 다른 변수나 값을 대입하는 연산자
부호 연산자
- 단항 연산자
- 변수의 부호를 유지 하거나(+) 바꿈(-)
- 실제 변수의 부호가 변하려면 대입 연산자를 사용해야 함
산술 연산자
- % 나머지 구하는 연산자, 숫자 n 의 나머지 범위는 0 ~ n-1
%는 n의 숫자가 있을 때 방배정 등 할 때 무작위 용으로 사용이 용이하게 가능하다
증가, 감소 연산자
- 연산자가 항의 앞에 있는가 뒤에 있는가에 따라 연산 시점과 결과가 달라짐
- 문장(statement)의 끝(;)을 기준으로 연산 시점을 생각해야 함
[ch 01. 12관계, 논리 연산자]
관계 연산자
논리 연산자
&& - > and / || -> OR / ! -> NOT
논리 연산에서 모든 항이 실행되지 않는 경우 - 단락 회로 평가 (short circuit evaluation)
- 논리 곱(&&)은 두 항의 결과가 모두 true일 때만 결과가 true
- -- 앞의 항의 결과가 false이면 뒤 항의 결과를 평가하지 않음
- 논리 합(||)은 두 항의 결과가 모두 false일 때만 결과가 false
- -- 앞의 항의 결과가 true이면 뒤 항의 결과를 평가하지 않음
package ch12;
public class ShortCircuit {
public static void main(String[] args) {
int num1 = 10;
int i = 2;
boolean value = ((num1 = num1 + 10 ) < 10) && ( ( i = i + 2 ) < 10);
System.out.println(value);
System.out.println(num1);
System.out.println(i);
value = ((num1 = num1 + 10 ) < 10) || ( ( i = i + 2 ) < 10);
System.out.println(value);
System.out.println(num1);
System.out.println(i);
}
}
이는 곳 내가 의도한 대로 실행이 안될 수있음을 유념해야한다
[ch 01. 11 조건 연산자, 비트 연산자]
<조건 연산자>
<비트연산자>
- 대입연산자와 다른 연산자가 함께 쓰임
- 마스크 : 특정 비트를 가리고 몇 개의 비트 값만 사용할 때
- 비트켜기 : 특정 비트들만을 1로 설정해서 사용하고 싶을 때
예) & 00001111 ( 하위 4비트 중 1인 비트만 꺼내기) - 비트끄기 : 특정 비트들만을 0으로 설정해서 사용하고 싶을 때
예) | 11110000 ( 하위 4비트 중 0 인 비트만 0으로 만들기) - 비트 토글 : 모든 비트들을 0은 1로, 1은 0으로 바꾸고 싶을 때
쉬프트연산자 경우 특이사항
특히 << 등의 경우 이동한 n 만큼 2^n 으로 값이 상승하게 된다
그렇다 하더라도 <<하면 저장은 안되기 때문에 대입연산자(=)를 함께 이용해야 한다
ex : <<=
package ch13;
public class BitTest {
public static void main(String[] args) {
int num1 = 5; // 00000101
int num2 = 10; // 00001010
System.out.println(num1 | num2);
System.out.println(num1 & num2);
System.out.println(num1 ^ num2);
System.out.println(~num1);
System.out.println(num1 << 2);
System.out.println(num1);
System.out.println(num1 <<= 2);
System.out.println(num1);
}
}
<연산자 우선순위>
그래서 주로 대입은 우측항에서 다끝나고 좌측으로 대입을 한다.
괄호가 1순위라서 안해도 되지만 "가독성"때문에 하는 것을 권장함
[마무리]
< 추가적 공부 필요한 부분>
없음
<회고>
1
++ / -- 증감연산자에 대해서 암기만 했는데 제대로 이해하게 됨
즉 ; 기준으로 생각 해서 판단하기
2
비트연산자의 경우 이동한 만큼 2^n 만큼 수가 상승한다는 것을 알게 되었다.
논리회로 시간 때 배웠던 기억이 나는데 그때 이해하기 싫었던것을 드디어 이해해서 기쁘다.
3
단락회로평가는 그냥 알면 좋은 상식같은데 실제로 이렇게 쓰일일이 있을까?
'배움 __IL > TIL 0기' 카테고리의 다른 글
TIL - 각종 조건문 및 반복문 [221129] (0) | 2022.11.29 |
---|---|
TIL - 상수, 리터럴 [221110 - 1] (0) | 2022.11.10 |
TIL - 각종자료형 [221108] (1) | 2022.11.08 |
TIL - 자료표현과 변수 [221105] (0) | 2022.11.05 |
[TIL-5] AWS로 서버 구매부터 실행 후 최종 배포까지 (0) | 2022.11.02 |