- int와 같은 부호가 있는 정수에서 음수를 표현하기 위해 고안한 방식. 음수로 바꾸고 싶은 수를 1의 보수를 취한 후 거기에 1을 더한다
ex) 8 bits로 구성된 수가 있다고 치고 18을 음수로 바꾸고 싶다고 할 때
18 -> (00010010) 이것을 -18로 바꾸고 싶으면
- 1의 보수를 취한다:
- (00010010) -> (11101101)
- 1의 보수를 취한 수에 1을 더한다.
- (11101101) -> (11101110)
결과: 11101110 -> -18
- 0
8진수를 나타낼 때 사용한다.
- ex) 0123 = 83
- 0x
16진수를 나타낼 때 사용한다.
- ex) 0xf5 = 245
- 0b
2진수를 나타낼 때 사용한다.
- ex) 0b10111010 = 186
- primitive 타입을 기준으로 연산 시 표현 범위가 큰 값에 맞춰 형 변환이 이뤄진다.(java 기본 숫자 타입은 int)
ex)
- short + int => int
- long + int => long
- long + float => float
- double + int => double
- 연산 시에 자동으로 형 변환이 일어나므로 원하는 값을 얻기 위해, 원하는 형태의 값을 얻기 위해 강제로 형변환을 하는 것.
- 결합방향이란 우선순위가 동일한 연산자가 하나의 수식에 존재하는 경우, 연산 순서를 결정해주는 것.
연산기호 결합방향 우선순위 [], . → 1(높음) expr++, expr-- ← 2 ++expr, --expr, +expr, -expr, ~, !, (type) ← 3 *, /, % → 4 +, - → 5 <<, >>, >>> → 6 <, >, <=, >=, instanceof → 7 ==, != → 8 & → 9 ^ → 10 | → 11 && → 12 || → 13 ? expr : expr ← 14 =, +=, -=, *=, /=, %=, &=, ^=, |=, <<=, >>=, >>>= ← 15(낮음)
- +=, -=, *=, /=, %= 등과 같이 연산자 두개로 구성되며 그 중에 하나에 =이 있는 연산자
ex)
short num = 20; num += 15L;
이런 식으로 나타낼 수 있는데, 이렇게 나타내게 되면
short num = 20; num = (short)(num + 15L);
위와 똑같이 동작하게 된다.
- && -> 논리 연산자 and
- || -> 논리 연산자 or
- ! -> 논리 연산자 not
public class Multiple{ public static void main(String[] args){ int num = 35; boolean result; result = (num % 2 == 0) || (num % 3 == 0); System.out.println("num : " + num + "은 2의 배수 이거나 3의 배수? :" + result); } }