연산자 우선순위: 산술 > 비교 > 논리 > 대입
단, 괄호를 감싸주면 괄호안의 연산이 최우선순위로 계산
연산 전에 두 피연산자의 타입이 다른 경우 타입을 일치시킨다.
피연산자의 타입이 'double'보다 작은 'float', 'long', 'int', 'short' 타입이면 'double'으로 변환한다
-이처럼, 변수여러개를 연산했을 때 결과값은 피연사자 중 표ㅕ현 범위가 가장 큰 변수 타입을 가지게 됩니다.
전 시간에 해서 생략
형변환 링크
int x = 1;
int y = 9;
boolean b = (x==y) ? true : false;
피 연산자가 조건에 명시된 클래스의 객체인지 비교하여 맞으면 ture 틀리면 false
Parent parent = new Parent();
Child child = new Child();
System.out.println(parent instanceof Parent) // true
System.out.println(child instanceof Parent) // false
EX1> 비트연산으로 곱셈
0101(5) -> 1010(10) : 5*2 = 10
EX2) 비트연산으로 나눗셈
비트 연산자는 보통 자주 안 쓰겠지 하고 가볍게 넘기는 사람도 있으실텐데
그런 사람들 위해 "비트마스킹"이라는 알고리즘을 살짝 소개 해주도록 하겠다
이진수를 사용하는 컴퓨터의 연산 방식을 이용하여 정수의 이진수 표현을 자료구조로 쓰는 기법.
O(1)이 아닌 경우
1. 비트 연산의. 크기에 따라 시간 복잡도가 증가하는 경우: 비트마스킹 연산이 여러 개의 비트를 동시에 조작하는경우 시간 복잡도가 선형으로 증가할 수 있다.
예를 들어, N비트의 비트마스크를 전체적으로 반전시키는 경우
2. 비트 연산이 반복적으로 수행되는 경우: 비트마스크를 사용하여 여러 번의 연산을 수행하는 경우, 각 연산마다 비트마스크를 업데이트라고 다시 수행해야 할 수 있습니다.
예를 들면 짝수 홀수 구하기
int num 5;
String oddEven = num & 1 ? "Odd" : "Even";
데이터를 미리 계산 해서 저장해 둘수 있어서 DP에 매우 유용하다
이처럼 하나의 정수로 많은 경우의 수를 표현 할수 있기 떄문에 메모리 측면에서 효율적이다
오늘은 정의 + 장점만 소개 해줬지만
비트 마스킹 알고리즘은 추가적으로 알아야 할게 많다!
코딩테스트때나 프로젝트떄 쓸수 있으니! 아는 만큼 쓸수 있다!!
다음에 자세하게 알고리즘만 다룰 예정임!