[Java]/Program source (java)

024 - 비트 연산자 XOR(배타적 논리합) : 변수 값 맞바꾸기

Jelly-fish 2023. 8. 28. 15:58
/*======================================================
	■■■ 연산자(Operator) ■■■
	- 비트 단위 연산자
	- 두 변수에 담겨있는 내용(값) 바꾸기 → 스왑(swap)
	  → 『xor』 연산자 활용~!!!
=======================================================*/




public class Test024
{
	public static void main(String[] args)
	{
		// 주요 변수 선언 및 초기화
		int x = 20, y = 23;
		//int temp;					//-- 임시 저장 변수(빈 컵)

		// 담겨있는 내용물 확인
		System.out.printf("x → %d, y → %d\n", x, y);


		// 연산 및 처리
		
		/*
		temp = x;
		x = y;
		y = temp;
		*/
		
		/*
		x = x ^ y;
		y = y ^ x;
		x = x ^ y;
		*/

		y = y ^ x;
		x = x ^ y;
		y = y ^ x;

		
		// 결과 출력
		System.out.printf("x → %d, y → %d\n", x, y);



	}

}


// 실행 결과

/*
x → 20, y → 23
x → 23, y → 20
계속하려면 아무 키나 누르십시오 . . .
*/


/*
x=x^y;  → x:20	  y:23

		→ x = 20 ^ 23

		00010100 → 20
	  ^ 00010111 → 23
      ----------------
        00000011 → 3


		→ x = 3;


y=t^x;  → y:23	   x:3
		→ y = 23 ^ 3

		00010111 → 23
      ^ 00000011 → 3
	  -----------------
	    00010100 → 20

	
		→ y = 20;



x=x^y; → x:3	  y:20
	   → x = 3 ^ 20

     	00000011 → 3
	  ^ 00010100 → 20
	  -----------------
	    00010111 → 23

	  → x = 23;


*/