본문 바로가기
수업(국비지원)/Java

[Java] chap3 : 연산자 - 이항 연산자(산술, 비교, 논리, 비트, 대입)

by byeolsub 2023. 4. 14.
  • 이항 연산자
이항 연산자 
  1. 산술 연산자 : +, -, *, /, %(나머지)

 

📌

package chap3;

public class OpEx3 {
	public static void main(String[] args) {
      int x=10,y=8;
      System.out.println("10+8="+ (x+y));
      System.out.println("10-8="+ (x-y));
      System.out.println("10*8="+ (x*y));
      System.out.println("10/8="+ (x/y)); //1 (소숫점 이하를 가질 수 없음.)
      System.out.println("10%8="+ (x%y)); //2
      // 나누기 몫
      System.out.println(10/8); //1
      System.out.println(-10/8); //-1
      System.out.println(10/-8); //-1
      System.out.println(-10/-8); //1
      // 나누기 나머지 :  나머지 한 결과의 부호는 피젯수의 부호를 따른다.
      System.out.println(10%8); //2
      System.out.println(-10%8); // -2
      System.out.println(10%-8); //2
      System.out.println(-10%-8); // -2

	}

}

 


2.비교연산자 (관계 연산자) : ==,!=,>,>=,... => 결과값은 bloolean  

3. 논리 연산자 : &&(and),||(or)  => bloolean && bloolean
  - && 문장 :  앞쪽 구문의 결과가 F인 경우 뒤쪽 문장은 실행 하지 않는다.
      T && T => T
      T && F => F
      F && T => F
      F && F => F : 앞에 있는 값이 F이면 뒤의 결과와는 관계없이 F
  - || 문장 : 앞쪽 구문의 결과가 T인 경우 뒤쪽 문장은 실행 하지 않는다. 
      T || T => T
      T || F => T
      F || T => T
      F || F => F   

 

📌

package chap3;

public class OpEx4 {
	public static void main(String[] args) {
		int x=1,y=1;
		System.out.println("1 == 1 :"+ (x==y));
		System.out.println("1 != 1 :"+ (x!=y));
		System.out.println("1 >= 1 :"+(x>=y));
		System.out.println("1 > 1 :"+ (x>y));

		System.out.println("x == 1 && y == 2 :"+ (x==1 && y==2));
		System.out.println("x == 1 || y == 2 :"+ (x==1 || y==2));
	}

}

 4. 비트 연산자 : &(AND), |(OR), ~(not),^(XOR)
       아예 이진수로 변환시켜서 계산함.

 

📌

package chap3;

public class OpEx5 {
	public static void main(String[] args) {
		System.out.println(6 & 3);
		/*
		 *  6 : 00000110
		 *  3 : 00000011
		 *  & : 00000010  => 2
		 */
		System.out.println(6 | 3);
		/*
		 *  6 : 00000110
		 *  3 : 00000011
		 *  | : 00000111  => 7
		 */
		System.out.println(6 ^ 3);
		/*
		 *  XOR : 배타적 OR. 두개 값이 다른 경우 True(1), 같은경우 False(0)
		 *  6 : 00000110
		 *  3 : 00000011
		 *  ^ : 00000101  => 5
		 */
		System.out.println(~10);
		/*
		 *   ~ : not : 0->1,1->0
		 *  10 : 00001010
		 *   ~ : 11110101  => 음수. 2의 보수로 표현. -11의 표현
		 *   
		 * 2의 보수 : 1의보수 + 1
		 * 보수의 보수 = 원래 숫자
		 * 11110101 => ? 2의 보수
		 *   
		 *        11110101
		 * 1의 보수 00001010
		 * 2의 보수        1
		 *         00001011 => 11
		 */
		System.out.println(true & false); // false 
	}
}

 5. 대입 연산자 : =,+=,-=,*=,....
               오른쪽의 값을 변수의 값과 더한 뒤에 다시 변수에 저장한다.
   a = 10 : a변수에 10이라는 값을 대입하여 저장.
   a == 10 : a변수의 값이 10이니?

 

📌

package chap3;

public class OpEx7 {
	public static void main(String[] args) {
        int num=100;
        System.out.println(num); //100
        num+=10;      // num = num +10            
        System.out.println(num); //110
        num = num +10; 
        System.out.println(num); //120
        num /= 10;     //num = num / 10
        System.out.println(num); // 12
        num *= 5;
        System.out.println(num); // 60
        num -= 2+3;    //num = num - (2+3)
        System.out.println(num); //55
        num %= 10;     //num = num % 10
        System.out.println(num); //5
        
	}

}