πŸ‘©πŸ»β€πŸ’» Dev

[Java] μ •μˆ˜ν˜• λΉ„νŠΈ μ—°μ‚°

jcowwk 2025. 2. 24. 22:38

μ •μˆ˜ν˜• λΉ„νŠΈ μ—°μ‚°

 

λΉ„νŠΈ 연산을 잘 μ‚¬μš©ν•˜μ§€ μ•Šλ‹€λ³΄λ‹ˆ 기얡이 λ‚˜μ§€ μ•ŠλŠ” 이슈둜 인해 μ •λ¦¬ν•˜κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€,,


aκ°€ 13이고, bκ°€ 4일 λ•Œ μ •μˆ˜ν˜• λΉ„νŠΈ 연산을 ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

 

System.out.println(a & b)

 

aλŠ” μ΄μ§„μˆ˜λ‘œ ν‘œν˜„ν•˜λ©΄ 1101, bλŠ” μ΄μ§„μˆ˜λ‘œ ν‘œν˜„ν•˜λ©΄ 0100 μž…λ‹ˆλ‹€.

a와 b의 μ΄μ§„μˆ˜λ₯Ό λΉ„κ΅ν•˜μ—¬ 두 λΉ„νŠΈκ°€ λͺ¨λ‘ 1일 λ•Œλ§Œ 1을 λ°˜ν™˜ν•©λ‹ˆλ‹€.

μ΄λ•Œ, 0100 결과값을 λ„μΆœν•  수 있고 μ΄λŠ” 10μ§„μˆ˜λ‘œ λ³€ν™˜ν•˜λ©΄ 4κ°€ λ©λ‹ˆλ‹€.

 

System.out.println(a | b)

 

a와 b의 μ΄μ§„μˆ˜λ₯Ό λΉ„κ΅ν•˜μ—¬ ν•œ λΉ„νŠΈλΌλ„ 1이면 1을 λ°˜ν™˜ν•©λ‹ˆλ‹€.

μ΄λ•Œ, 1101 결과값을 λ„μΆœν•  수 있고 μ΄λŠ” 10μ§„μˆ˜λ‘œ λ³€ν™˜ν•˜λ©΄ 13이 λ©λ‹ˆλ‹€.

 

System.out.println(a ^ b)

 

XOR μ—°μ‚°μœΌλ‘œ a와 b의 μ΄μ§„μˆ˜λ₯Ό λΉ„κ΅ν•˜μ—¬ μ„œλ‘œ λ‹€λ₯΄λ©΄ 1, κ°™μœΌλ©΄ 0을 λ°˜ν™˜ν•©λ‹ˆλ‹€.

1001 결과값을 λ„μΆœν•  수 있고 10μ§„μˆ˜λ‘œ λ³€ν™˜ν•˜λ©΄ 9μž…λ‹ˆλ‹€.

 

System.out.println(~a)

 

a의 λͺ¨λ“  λΉ„νŠΈλ₯Ό λ’€μ§‘κ³  2의 보수(음수)λ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€.

0000 1101 의 λΉ„νŠΈλ₯Ό λ°˜μ „ν•˜μ—¬ 1111 0010 을 λ§Œλ“€μ–΄μ„œ 10μ§„μˆ˜λ‘œ λ³€ν™˜ν•˜λ©΄ -14μž…λ‹ˆλ‹€.

 

System.out.println(a << 2)

 

aλ₯Ό μ™Όμͺ½μœΌλ‘œ 2λΉ„νŠΈ μ΄λ™ν•˜λ©΄ 2^2을 κ³±ν•œ 것과 κ°™μŠ΅λ‹ˆλ‹€.

0000 1101을 0011 0100으둜 κ³„μ‚°ν•˜μ—¬ 10μ§„μˆ˜λ‘œ λ³€ν™˜ν•˜λ©΄ 52κ°€ λ©λ‹ˆλ‹€.

 

System.out.println(a >> 1)

 

aλ₯Ό 였λ₯Έμͺ½μœΌλ‘œ 1λΉ„νŠΈ μ΄λ™ν•˜λ©΄ 2^1을 λ‚˜λˆˆ 것과 κ°™μŠ΅λ‹ˆλ‹€.

0000 1101을 0000 0110으둜 κ³„μ‚°ν•˜μ—¬ 10μ§„μˆ˜λ‘œ λ³€ν™˜ν•˜λ©΄ 6이 λ©λ‹ˆλ‹€. 


μ°Έκ³  μ‚¬μ΄νŠΈ

 

[μ½”λ”© ν…ŒμŠ€νŠΈ Java] μ½”λ”© ν…ŒμŠ€νŠΈ ν•„μˆ˜ 문법 - κ³¨λ“ λž˜λΉ—

배열은 μΈλ±μŠ€μ™€ 값을 μΌλŒ€μΌ λŒ€μ‘ν•΄ κ΄€λ¦¬ν•˜λŠ” μžλ£Œκ΅¬μ‘°μž…λ‹ˆλ‹€. 데이터λ₯Ό μ €μž₯ν•  수 μžˆλŠ” λͺ¨λ“  곡간은 μΈλ±μŠ€μ™€ μΌλŒ€μΌ λŒ€μ‘ν•˜λ―€λ‘œ μ–΄λ–€ μœ„μΉ˜μ— μžˆλŠ” 데이터든 ν•œ λ²ˆμ— μ ‘κ·Όν•  수 μžˆμŠ΅λ‹ˆλ‹€.

goldenrabbit.co.kr

 

λ¬Έμ œκ°€ 있으면 λŒ“κΈ€ λ‚¨κ²¨μ£Όμ„Έμš” !

ν”Όλ“œλ°±μ€ μ–Έμ œλ‚˜ ν™˜μ˜μž…λ‹ˆλ‹€ <3