Study for Backend/Programming language - Java

[Java기초] 여러가지 연산자

지미니박 2024. 2. 3. 17:25

        //20240203
//      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 = " + result);

        int numZ = 1;
        System.out.println("numZ++ = " + numZ++); // 수식이 끝나고 난 후에 변수값을 1 증가시킴
        System.out.println("numZ = " + numZ);

        numZ = 1;
        System.out.println("++numZ = " + ++numZ); // 수식이 시작되기 전에 변수값을 1 증가시킴
        System.out.println("numZ = " + numZ);

        numZ = 1;
        System.out.println("numZ-- = " + numZ--);
        System.out.println("numZ = " + numZ);

        numZ = 1;
        System.out.println("--numZ = " + --numZ);
        System.out.println("numZ = " + numZ);


//      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)); //둘 다 true이어야 true
        System.out.println((10 > 9) || (1==0)); // 하나라도 true면 true


//      5. 복합 대입 연산자
        System.out.println("== 복합 대입 연산자 ==");
        int num1 = 10;
        System.out.println("num1 = " + num1);

        int num2 = 5;
        num1 += num2; // num1 = num1 + num2 와 같음
        System.out.println("num1 += num2 = " + num1);

        num1 -= num2;
        System.out.println("num1 -= num2 = " + num1);

        num1 *= num2;
        System.out.println("num1 *= num2 = " + num1);

//      6. 삼항 연산자
        System.out.println("== 삼항 연산자 ==");

        int a = 100;
        String aResult = (a == 100) ? "yes":"no";
        System.out.println("aResult = " + aResult);



//      1. 비트 논리 연산자
        System.out.println("== 비트 논리 연산자 ==");
//      1-1. AND 연산자 (&)
        int num10 = 3;
        int num11 = 5;
        int result0 = 0;

        result0 = num10 & num11;
        System.out.println("result0 = " + result0);

        System.out.println("result0 이진수 = " + Integer.toBinaryString(result0));
        System.out.printf("%04d\n " , Integer.parseInt(Integer.toBinaryString(num10)));
        System.out.printf("%04d\n " , Integer.parseInt(Integer.toBinaryString(num11)));
        System.out.printf("%04d\n " , Integer.parseInt(Integer.toBinaryString(result0)));//4자리수로 만들기


//      1-2. OR 연산자 (|)
        result0 = num10 | num11;
        System.out.println("result0 = " + result0);

        System.out.printf("%04d\n " , Integer.parseInt(Integer.toBinaryString(num10)));
        System.out.printf("%04d\n " , Integer.parseInt(Integer.toBinaryString(num11)));
        System.out.printf("%04d\n " , Integer.parseInt(Integer.toBinaryString(result0)));


//      1-3. XOR 연산자 (^)
        result0 = num10 ^ num11;
        System.out.println("result0 = " + result0);

        System.out.printf("%04d\n " , Integer.parseInt(Integer.toBinaryString(num10)));
        System.out.printf("%04d\n " , Integer.parseInt(Integer.toBinaryString(num11)));
        System.out.printf("%04d\n " , Integer.parseInt(Integer.toBinaryString(result0)));


//      1-4. 반전 연산자 (~)
        result0 = ~num10;
        System.out.println("result0 = " + result0);

        System.out.printf("%04d\n " , Integer.parseInt(Integer.toBinaryString(num10)));
        System.out.printf("%s\n " , Integer.toBinaryString(result0));


//      2. 비트 이동 연산자
        System.out.println("== 비트 이동 연산자 ==");

//      2-1. << 연산자
        int num12 = 3;
        result0 = num12 << 1;

        System.out.println("result0 = " + result0);

        System.out.printf("%04d\n " , Integer.parseInt(Integer.toBinaryString(num12)));
        System.out.printf("%04d\n " , Integer.parseInt(Integer.toBinaryString(result0)));



//      2-2. >> 연산자
        result0 = num12 >> 1;

        System.out.println("result0 = " + result0);

        System.out.printf("%s\n " , Integer.parseInt(Integer.toBinaryString(num12)));
        System.out.printf("%s\n " , Integer.parseInt(Integer.toBinaryString(result0)));



//      2-3. >>> 연산자
        num12 = -5;
        result0 = num12 >> 1;

        System.out.printf("%s\n " , Integer.toBinaryString(num12));
        System.out.printf("%s\n " , Integer.toBinaryString(result0));

        result0 = num12 >>> 1;
        System.out.printf("%s\n " , Integer.toBinaryString(num12));
        System.out.printf("%s\n " , Integer.toBinaryString(result0));