Notice
Recent Posts
Recent Comments
Link
컴퓨터는 잘못이 없다..
[JAVA]여러가지 연산자 본문
Contents
접기
#핵심 요약
- 항과 연산자
- 단항 연산자 항이 1개, 이항 연산자 항 2개, 삼항 연산자 항 3개
- 연산자 종류
- 대입, 부호, 산술, 증/감, 관계, 논리, 복합 대입(ex. +=) 연산자
- 간혹 코딩테스트에 보수 관련된 문제가 나오므로 개념을 알고 있자!
#소스코드
여러가지 연산자 01
// Java 프로그래밍 - 여러가지 연산자_1
public class Main {
public static void main(String[] args) {
// 1. 대입 연산, 부호 연산자
int num = 100;
num = 10;
num = +10;
num = -10;
// 2. 산술 연산자, 증가/감소 연산자
System.out.println("== 산술 연산자, 증가/감소 연산자 ==");
int numX = 10;
int numY = 3;
int result = 0;
result = numX + numY;
result = numX - numY;
result = numX * numY;
result = numX / numY;
result = numX % numY;
System.out.println(result);
int numZ = 1;
System.out.println(numZ++); //1 -> 출력 먼저하고 증가
System.out.println(numZ); //2
numZ = 1;
System.out.println(++numZ); //2 -> 먼저 증가 시키고 출력
System.out.println(numZ); //2
numZ = 1;
System.out.println(numZ--); //1 -> 출력 먼저하고 감소
System.out.println(numZ); //0
numZ = 1;
System.out.println(--numZ); //0 -> 먼저 감소 시키고 출력
System.out.println(numZ); //0
// 3. 관계 연산자
System.out.println("== 관계 연산자 ==");
int numA = 10;
int numB = 9;
System.out.println(numA > numB);
System.out.println(numA < numB);
System.out.println(numA == numB);
System.out.println(numA != numB);
// 4. 논리 연산자
System.out.println("== 논리 연산자 ==");
System.out.println((10 > 9) && (1 == 0));
System.out.println((10 > 9) || (1 == 0));
// 5. 복합 대입 연산자
System.out.println("== 복합 대입 연산자 ==");
int num1 = 10;
int num2 = 5;
num1 += num2; //num1 = num1+num2
System.out.println(num1);
num1 -= num2; //num1 = num1-num2
System.out.println(num1);
num1 *= 2;
System.out.println(num1);
num1 %= 3;
System.out.println(num1);
// 6. 삼항 연산자
System.out.println("== 삼항 연산자 ==");
int a = 100;
String aResult = (a == 100)? "yes" : "no"; //a가 100과 같으면 yes 출력 그게 아니면 no 출력
System.out.println("aResult = " + aResult); //yes 출력
}
}
여러가지 연산자 02
// Java 프로그래밍 - 여러가지 연산자_2
public class Main {
public static void main(String[] args) {
// 1. 비트 논리 연산자
System.out.println("== 비트 논리 연산자 ==");
// 1-1. AND 연산자 (&)
int num1 = 5;
int num2 = 3;
int result = 0;
result = num1 & num2;
System.out.println(result);
System.out.printf("%04d\n", Integer.parseInt(Integer.toBinaryString(num1))); //2진수로 변환 -> 0101
System.out.printf("%04d\n", Integer.parseInt(Integer.toBinaryString(num2))); //0011
System.out.printf("%04d\n", Integer.parseInt(Integer.toBinaryString(result))); //&연산 후 결과 0001
// 1-2. OR 연산자 (|)
num1 = 5;
num2 = 3;
result = num1 | num2;
System.out.println(result);
System.out.printf("%04d\n", Integer.parseInt(Integer.toBinaryString(num1)));
System.out.printf("%04d\n", Integer.parseInt(Integer.toBinaryString(num2)));
System.out.printf("%04d\n", Integer.parseInt(Integer.toBinaryString(result))); //OR 연산 후 결과
// 1-3. XOR 연산자 (^)
num1 = 5;
num2 = 3;
result = num1 ^ num2;
System.out.println(result);
System.out.printf("%04d\n", Integer.parseInt(Integer.toBinaryString(num1)));
System.out.printf("%04d\n", Integer.parseInt(Integer.toBinaryString(num2)));
System.out.printf("%04d\n", Integer.parseInt(Integer.toBinaryString(result))); //XOR연산 후 결과
// 1-4. 반전 연산자 (~)
num1 = 5;
result = ~num1;
System.out.println(result); //-6
System.out.printf("%04d\n", Integer.parseInt(Integer.toBinaryString(num1))); //0101
System.out.printf("%s\n", (Integer.toBinaryString(result))); //11111111111111111111111111111010 -> (맨 끝 4자리 반전됨)
// 2. 비트 이동 연산자
System.out.println("== 비트 이동 연산자 ==");
// 2-1. << 연산자
int numA = 3;
result = numA << 1;
System.out.println(result); //6
System.out.printf("%04d\n", Integer.parseInt(Integer.toBinaryString(numA))); //0011
System.out.printf("%04d\n", Integer.parseInt(Integer.toBinaryString(result))); //0110
// 2-2. >> 연산자
numA = 3;
result = numA >> 1;
System.out.println(result); //1
System.out.printf("%04d\n", Integer.parseInt(Integer.toBinaryString(numA))); //0011
System.out.printf("%04d\n", Integer.parseInt(Integer.toBinaryString(result))); //0001
// 2-3. >>> 연산자
numA = -5;
result = numA >> 1;
System.out.println(result); //-3
System.out.printf("%s\n", (Integer.toBinaryString(numA))); //11111111111111111111111111111011
System.out.printf("%s\n", (Integer.toBinaryString(result))); //11111111111111111111111111111101
numA = -5;
result = numA >>> 1;
System.out.println(result); //2147483645
System.out.printf("%s\n", (Integer.toBinaryString(numA))); //11111111111111111111111111111011
System.out.printf("%s\n", (Integer.toBinaryString(result))); //1111111111111111111111111111101
}
}
'공부 > JAVA' 카테고리의 다른 글
[JAVA]조건문 (0) | 2024.04.07 |
---|---|
[JAVA]변수와 자료형 (1) | 2024.04.07 |
[JAVA]InnerClass3_퀴즈_Inner Class 객체 생성하기 (0) | 2020.12.29 |
Comments