본문 바로가기
JAVA

Test026.java / 연산자 - 비트단위연산자 xor / 서로 다른 정수 바꾸기 『 ^ 』

by universedevelope 2022. 7. 8.
/* ======================================
    ■ ■ ■ 연산자(Operator) ■ ■ ■
======================================= */

// 비트 단위 연산자

// 비트 단위 연산자 『xor』 연산자를 활용하여
// 두 변수에 담겨있는 내용(값) 바꾸기

public class Test026
{
	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

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

x = 3;

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

		000010111 → 23
	^   000000011 →  3
	----------------------
	    000010100 → 20

y = 20;


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

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

x = 23;
   
-----------------------*/
728x90

댓글