(2주차) JAVA 문법 종합반/2주차

5. 비트 연산자, 연산자 우선순위

note994 2024. 7. 30. 21:26

[연산자 우선순위 : 산술 > 비교 > 논리 > 대입]

- 연산자 여러개가 함께 있는 연산을 계산할때는 우선순위가 있다.

- 위 우선순위에 따라서 최종적인 응답값이 결정된다.

- 단, 괄호로 감싸주면 괄호안의 연산이 최우선순위로 계산된다.

int x = 2;
int y = 9;
int z = 10;

boolean result = x < y && y < z; // true && true = true

result = x + 10 < y && y < z; //산술연산자인 x + 10이 제일 먼저 계산됨, 두 번째로 비교연산자인 <가 연산됨, 그 다음에 논리 연산자인 &&가 계산됨

// false && true = false

result = x + 2 * 3 > y; // false, 연산자 우선순위에 따라 *, +, > 순으로 연산하여 8 > 9 가 계산되므로 false

result = (x + 2) * 3 > y; // 괄호는 최우선순위, 12 > 9 이므로 true

연산 전에 두 피연산자의 타입이 다른 경우 타입을 일치시킨다.

- 두 피연산자의 타입을 같게 일치시킨다. (둘중에 저장공간 크기가 더 큰 타입으로 일치)

- int와 short의 연산은 int로 변환

- long과 int, short 타입의 연산은 long으로 변환

- float와 long, int, short 연산은 float (float은 부동소수점 방식이라서 long보다 표현범위가 넓다)

- double과 float, long, int, short 연산은 double로 변환

short x = 10;
int y = 20;

int z = x + y;

long lx = 30L; // long타입은 L을 붙여줘야 함
long lz = z + lx;

float fx = x;
float fy = y;
float fz = z;

비트 연산

- Byte를 8등분한게 Bit

- Bit는 0, 1 둘중의 하나의 값만을 저장하는 컴퓨터가 저장(표현)가능한 가장 작은 단위

- 컴퓨터의 가장 작은 단위인 Bit이기 때문에 연산중에서 Bit 연산이 제일 빠름

- 0,1 값으로 산술연산을 하거나, 비교연산을 할 수 있지만 비트 연산을 통해 자리수를 옮길수도 있음

- 이처럼 Bit의 자리수를 옮기는 것을 비트 연산이라고 한다.

- '<<' (왼쪽으로 자리수 옮기기), '>>' (오른쪽으로 자리수 옮기기)

- 자리수를 왼쪽으로 옮기는 횟수만큼 2의 배수로 곱셈이 연산되는것과 동일하다.

- 자리수를 오른쪽으로 옮기는 횟수만큼 2의 배수로 나눗셈이 연산되는것과 동일하다.

 

System.out.println(3<<2); // 3은 2진수로11 -> 왼쪽으로 비트연산 2번했으니 1100 -> 12가 출력됨

System.out.println(3<<1); // 3은 2진수로 11 -> 왼쪽으로 비트연산 1번 110 -> 6이 출력

'(2주차) JAVA 문법 종합반 > 2주차' 카테고리의 다른 글

8. for  (0) 2024.07.31
7. switch  (0) 2024.07.31
6. if  (0) 2024.07.30
4. 기타연산자  (0) 2024.07.30
3. 대입연산자  (0) 2024.07.29