Java : 기타 연산자, 산술 연산자 타입일치

커비·2024년 11월 11일
0

Java

목록 보기
27/55
post-thumbnail

연산자 우선순위

산술 > 비교 > 논리 > 대입

  • 연산자 여러개가 함께 있는 연산을 계산할 떄는 우선순위가 있다.
  • 위 우선순위에 따라서 최종적인 응답값이 결정된다.
  • 단, 괄호로 감싸주면 괄호 안의 연산이 최우선 순위로 계산된다.

📍 기타연산자

package week02;

public class W07 {
    public static void main(String[] args) {
        // 기타 연산자

        // (1) 형변환 연산자
        int intNumber = 93 + (int)98.8;
        System.out.println(intNumber);

        double doubleNumber = (double) 93 + 98.8;
        System.out.println(doubleNumber);

        // (2) 삼항연산자
        // 비교연산자와 항상 함께 쓰인다.
        // 비교연산자의 결과 : true or false -> 이 결과의 값에 따라 결정되는 무언가!
        // 조건 ? 참 : 거짓
        int x = 1;
        int y = 9;

        boolean b  = (x == y) ? true : false;
        System.out.println(b);

        String s = (x != y) ? "정답" : "오답";
        System.out.println(s);

        int max = (x > y) ? x : y;
        System.out.println(max);

        int min = (x < y) ? x : y;
        System.out.println(min);

        // (3) instance of(3주차 -> 클래스, 객체)
    }
}

📍 산술연산자

산술 연산자 타입일치

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

  • 두 피연산자의 타입을
  • 피연산자의 타입이 int 보다 작은 short 타입이면 int로 변환
  • 피연산자의 타입이 long 보다 작은 int, short 타입이면 long으로 변환
  • 피연산자의 타입이 float 보다 작은 long, int, short 타입이면 float 으로 변환
  • 피연산자의 타입이 double 보다 작은 float, long, int, short 타입이면 double으로 변환
  • 이처럼 변수 여러개를 연산했을 때 결과값은 피연산자 중 표현 범위가 가장 큰 변수 타입을 가지게 된다.
package week02;

public class W09 {
    public static void main(String[] args) {
        short x = 10;
        int y = 20;

        int z = x +y;

        long lx = 30L;
        long lz = z +lx;

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

        System.out.println(lz);
        System.out.println(fx);
        System.out.println(fy);
        System.out.println(fz);
    }
}

📍 비트 연산자

비트연산

  • Byte를 8등분한 게Bit
  • Bit는 0,1 둘 중의 하나의 값만을 저장하는 컴퓨터가 저장(표현)가능한 가장 작은 단위
  • 컴퓨터의 가장 작은 단위인 Bit이기 때문에 연산 중에서 Bit 연산이 가장 빠름
  • 물론 이전에 배운대로 0,1값으로 산술연산을 하거나, 비교연산을 할 수 있지만, 비트 연산을 통해 자리수를 옮길 수도 있음
  • 이처럼 Bit의 자리수를 옮기는 것을 비트 연산이라고 함
  • << 왼쪽으로 자리수 옮기기, >> 오른쪽으로 자리수 옮기기
  • 0,1은 2진수 값이기 때문에 자리수를 왼쪽으로 옮기는 횟수만큼 2의 배수로 곱셈이 연산되는 것과 동일함
  • 0,1은 2진수 값이기 때문에 자리수를 오른쪽으로 옮기는 횟수만큼 2의 배수로 나눗셈이 연산되는 것과 동일함

package week02;

public class W10 {
    public static void main(String[] args) {
        System.out.println(3 << 2);
        System.out.println(3 << 1);
    }
}

고등학교 때 컴퓨터일반에서 배운 내용인데도 약간 깨름칙해서 내일 복습을 해보려고 한다.

profile
전공은 컴퓨터공학, 복수전공은 해킹보안학, 직장은 방학(파워 구직중)

0개의 댓글