Jstol의 일기 (TIL,WIL)
[TIL #4 / JAVA] 연산자... 기본연산자부터 비트연산자, 연산자 우선순위
제이스톨
2024. 10. 17. 10:02
728x90
오늘의 한마디 :
나 자신에 대한 자신감을 잃으면 온세상이 내 적이 된다.
- 랄프 왈도 에머슨
https://github.com/tuy112/JavaStudy
GitHub - tuy112/JavaStudy: JAVA + SQL 공부방입니다 (15일 안에 완성하는 기본기)
JAVA + SQL 공부방입니다 (15일 안에 완성하는 기본기). Contribute to tuy112/JavaStudy development by creating an account on GitHub.
github.com
TIL (Today I Learned)
1. 기본 연산자
1-1. 연산자 : 연산에 사용되는기호
- 단항 연산자 : 항이 한 개로 이루어진 연산자 / 예) ++num;, num++;
// age에 1을 더하기
age += 1;
age = age + 1;
++age;
age++;
// 모두 사용 가능하지만,
// age++; 를 주로 많이 쓴다 (앞에 붙여주는 상황 알아보기)
- 이항 연산자 : 항이 두 개로 이루어진 연산자 / 예) num1 + num2;
- 삼항 연산자 : 항이 세개가 필요한 연산자 (조건 연산자) / 예) (5 > 3) ? 1 : 0;
1-2. 대입 연산자 : 변수의 값을 대입하는 연산자
int age = 24;
System.out.println ("나이 :" + age);
// 나이를 의미하는 age 변수에 24를 대입
1-3. 부호 연산자 : +, - 두 가지가 있다. +는 양수로 만들어주고 -는 음수로 만들어주는 연산자
int num_a = 1;
System.out.println(+num_a); // 양수
System.out.println(-num_a); // 음수 (값을
System.out.println(num_a); // 다시 양수
num_a = -num_a; // 값 자체를 음수로 바꾸어줌
System.out.println(num_a); // 음수가 출력됨
1-4. 산술 연산자 : +, -, *, /, % 를 사용하는 연산자
int math = 90;
int eng = 70;
int total = math + eng;
int avg = total / 2;
int mutiple = math * eng;
int remainder = avg % 9;
System.out.println("합계 : " + total); // 160
System.out.println("평균 : " + avg); // 80
System.out.println("곱 : " + multiple); //6300
System.out.println("나머지 : " + remainder); // 8
1-5. 증감 (증가, 감소) 연산자 : ++, --
int gameScore = 100;
int goalScore = gameScore++; // 101
System.out.println("증가 연산자 :" + goalScore); // 101
int hitScore = --gameScore;
System.out.println("감소 연산자 :" + hitScore); // 다시 100
1-6. 관계 연산자 : 항이 두 개인 이항연산자로 항 두개를 비교한 후 true or false로 결과가 나옴
int myAge = 29;
boolean ageValue = (myAge >= 29);
System.out.println("관계 연산자 :" + ageValue); // true
1-7. 논리 연산자 : &&, ||, !
// 모두 참 = 논리 곱은 참 and 그리고
boolean val1 = (5>3) && (5>2) && (5==4); // 둘다 참 true
System.out.println(val1);
// 하나만 참 = 논리 합은 참 or 또는
boolean val2 = (5>3) || (5<2); // 하나만 참 true
System.out.println(val2);
// 참의 부정은 거짓 + 거짓의 부정은 참
boolean val3 = !(5<3); // 참을 부정 false
System.out.println(val3);
1-8. 복합 대입 연산자 : 대입 연산자와 다른 연산자를 조합해 하나의 연산자처럼 사용하는 연산자
int num_ab = 2;
num_ab += 2;
num_ab = num_ab + 2;
1-9. 조건 연산자 : 연산에 필요한 항이 3개인 삼항 연산자
int father = 50;
int mother = 48;
// 1번 방법
char ch;
ch = ( father > mother ) ? 'T' : 'F'; // father이 mother보다 더 숫자가 크므로 참 -> 그러므로 ch 또한 참이 된다
// 2번 방법
if ( father < mother ) {
ch = 'T';
} else {
ch = 'F';
}
System.out.println("삼항 연산자 : " + ch); // false
2. 비트 연산자 : 비트 값을 기반으로 하는 연산자 / 비트 단위로 이루어지는 연산자
※ 비트 : 0, 1로 구성된 2진수
2-1. & 연산자 : 비트 단위로 AND 연산을 한다. (두 비트가 모두 1이여만 결과가 1이 된다.)
int num1 = 5; // 5 = 00000101
int num2 = 10; // 10 = 00001010
int result1 = num1 & num2;
System.out.println("& : " + result1); // 00000000 = 0
2-2. | 연산자 : 비트 단위로 OR 연산을 한다. (하나의 비트라도 1이면 결과가 1이 된다.)
int result2 = num1 | num2;
System.out.println("| : " + result2); // 00001111 = 15
2-3. ^ 연산자 : 비트 단위로 XOR 연산을 한다. (두 비트가 다를 때만 1이 된다.)
int result3 = num1 ^ num2;
System.out.println("^ : " + result3); // 00001111 = 15
2-4. ~ 연산자 : 단항 연산자 (모든 비트를 반전시킨다 = 0과 1을 반전)
int num3 = 5; // 5 = 00000101
int result4 = ~num3; // 비트를 반전시킴
System.out.println("~ : " + result4); // 11111010 = -6
2-5. << 연산자 : 비트 이동 연산자 (비트를 왼쪽으로 이동시킨다)
int result6 = x << 2; // 2비트만큼 왼쪽으로 이동시킴
System.out.println("<< : " + result6); // 00100000 = 32
2-6. >> 연산자 : 비트 이동 연산자 (비트를 오른쪽으로 이동시킨다)
int x = 8; // 8 = 00001000
int result5 = x >> 2; // 2비트만큼 오른쪽으로 이동시킴
System.out.println(">> : " + result5); // 00000010 = 2
2-7. >>> 연산자 : >> 연산자와 마찬가지로 오른쪽으로 이동시키는 연산자이다. 단, 왼쪽으로 채워지는 비트는 다 0이다.
int y = -6; // 6 = 11111010
int result7 = y >>> 2;
System.out.println(">>> : " + result7); // 1
3. 연산자 우선순위
15일 간의 기본기 잡기 Day2 종료..!

728x90