본문 바로가기

JAVA/Study

15. 대입연산자 - assignment operator

 

대입연산자    

public static void main(String[] args) {
        //대입 연산자
        int a = 10;
        int b = 15;
        System.out.println("a="+a);
        System.out.println("b="+b);
       
        a+=3; b-=3; //a=a+3  즉 13 , b=b-3 즉 12
        //10에 3을 더한값을 a에 대입하라는 뜻
        // (a + 3 을 한 값의 결과를 a에 저장하라는뜻)
       
        System.out.println();
        System.out.println("a="+a);
        System.out.println("b="+b);
       
        a*=3; b/=3; // a=a*3 즉 39 , b=b/3 즉 4
       
        System.out.println();
        System.out.println("a="+a);
        System.out.println("b="+b);
       
        a%=2; //a=a%2 즉 1
       
        System.out.println();
        System.out.println("a="+a);
       
        int c =40;
        int d = 40;
        c<<=2; d>>=2; //c를 왼쪽으로 2만큼 자리이동 d를 오른쪽으로 2만큼 자리이동
        //쉬프트 연산자 (2진수로 바꾼후 좌, 우 로 자리이동(한칸당 *2 , /2)) /즉 160 , 10
        System.out.println();
        System.out.println("c="+c);
        System.out.println("d="+d);
       
    }

}

쉬프트연산자 부연설명

 

40을 2진수로 바꾸었을때

(아래 그림처럼 숫자를 써넣으면 계산하기편하다)

101000이 되는데

여기서  왼쪽으로 2칸을 이동하게되면

 

 

 

 

 

 

 

 

 

 

 

10100000이 되어 160이라는 숫자가 나오게된다

즉 왼쪽으로 한칸 이동할때마다 *2를 하는셈

오른쪽이동은 이와 반대로 생각하면 되고 오른쪽이동은 이동할때마다 /2를 하는셈이 된다

 


출력값