Languages/C [C์ธ์ด] ๋ ๋ณ์์ ๊ฐ ๋ฐ๊พธ๊ธฐ - ๋ฐ์ํ ์.. ์ด๊ฑฐ ๋ณด๋ฉด์ ๊ฐํํ์ด์ ์ด์ ๊ป ์ ๋ง ๊ฒฝํํด๋ณด์ง ๋ชปํ ์ฝ๋์๊ฑฐ๋ ์. ๋ ๋ณ์์ ๊ฐ์ ๋ฐ๊พผ๋ค.. ํ๋ฉด Swapํจ์๋ง์ ์๊ฐํ์๋๋ฐ .. "์ฐ์ฐ๋ง"์ ํตํด ์๋ฆฌ ๊ฐ์ ๋ฐ๊พผ๋ค๋ฉด ? #include <stdio.h> int main() { char a = 3, b = 7; printf("Before : a = %d, b= %d\n", a, b); a = a ^ b; b = a ^ b; a = a ^ b; printf("After : a = %d, b = %d\n", a, b); return 0; } /* 1byte๋ก ํํํ๋ฉด a = 0000 0011 b = 0000 0111 ๋๊ฐ์ง ์๋ฆฌ ๋ฐ๊พธ๋ ค๋ฉด? xor์ ๋๋ฒ ์ฐ์ฐ ์ ๋ณธ๋ ์์ ์ด ์ ์ฅํ ๊ฐ์ ๊ฐ์ง (๊ฐ์ผ๋ฉด 0, ๋ค๋ฅด๋ฉด 1) 0000 0011 (a) 0000 0111 (b) --------- 0000 0100 (4) --> 4 a = a^b; -> a๊ฐ 4๋ก ๋ฐ๋ 0000 0111 (b) 0000 0100 (4) ---------- 0000 0011 (a) --> ๋ค์ 3์ด๋จ. b = b^a; -> b๊ฐ 3์ผ๋ก ๋ฐ๋ 0000 0011 (b) ์๋ a 0000 0100 (a) ์ถ๊ฐ์ ์ผ๋ก ์๊ธด ๊ฐ --------- 0000 0111 (7) ์๋ b a = b^a ; -> a๊ฐ 7๋ก ๋ฐ๋ */ XOR์ฐ์ฐ์๋ฅผ ์์๋์? xor ์ฐ์ฐ์๋ฅผ ์ด์ฉํด์, ์ด๋ ๊ฒ ๋ค์ํ ๋ฐฉ๋ฒ์ ์ฌ์ฉ์ด ๋ ์ ์๋ต๋๋ค.. ์ ๋ ์ฒ์ ๋ณด๋ค์ ใ ใ ํจ์๋ก ์ ์ํด์ ์ฌ์ฉํ ์๋ ์์ต๋๋ค! ์๊ฐํ๋ ๋ฐฉ๋ฒ๊ณผ ๋๋ฌด ๋ค๋ฅด๋ค๊ณ ๋๋ผ์ง ๋ง์ธ์ ใ ใ #include <stdio.h> #define SWAP(a,b) {a ^= b; b ^= a; a ^= b;} int main() { char a = 3, b = 7; printf("Before : a = %d, b= %d\n", a, b); SWAP(a, b) printf("After : a = %d, b = %d\n", a, b); return 0; } ๊ตฟ ! ๋ฐ์ํ ๊ณต์ ํ๊ธฐ URL ๋ณต์ฌ์นด์นด์คํก ๊ณต์ ํ์ด์ค๋ถ ๊ณต์ ์์ค ๊ณต์ ๊ฒ์๊ธ ๊ด๋ฆฌ ๊ตฌ๋ ํ๊ธฐI-Tstory Contents ๋น์ ์ด ์ข์ํ ๋งํ ์ฝํ ์ธ 1์ฐจ์ ๋ฐฐ์ด๊ณผ 2์ฐจ์ ๋ฐฐ์ด 2021.01.30 Swapํจ์ ๊ธฐ๊ณ์ด(์ด์ ๋ธ)๋ก ํด์ํ๊ธฐ 2021.01.28 ์๋ฃํ๊ณผ ๋ณ์ ๊ฐ๋ ์ด ์๊ธด ์ด์ 2021.01.12 ๊ธฐ๊ณ์ด๋ก ํ๋ก๊ทธ๋๋ฐ์ ํ๋ ๊ฒฝ์ฐ 2021.01.12 ๋๊ธ 2 + ์ด์ ๋๊ธ ๋๋ณด๊ธฐ