프로그래밍의 기초(의사 코드 트레이스)
⊕는 비트별 배타적 논리합을 나타낸다. 다음 프로그램을 실행한 후의 x와 y의 값의 조합은?
integer: x ← 12, y ← 10
x ← x ⊕ y
y ← x ⊕ y
x ← x ⊕ y
- Ax = 10, y = 12
- Bx = 6, y = 12
- Cx = 12, y = 10
정답과 해설 보기
정답: A. x = 10, y = 12
2진수로 12 = 1100, 10 = 1010입니다. 1행에서 x = 1100 ⊕ 1010 = 0110 = 6, 2행에서 y = 0110 ⊕ 1010 = 1100 = 12, 3행에서 x = 0110 ⊕ 1100 = 1010 = 10이 됩니다. 같은 값과 두 번 배타적 논리합을 취하면 원래대로 돌아오는(a ⊕ b ⊕ b = a) 성질을 이용하여, 작업용 변수 없이 값을 교환하는 방법입니다.