"비트연산자"의 두 판 사이의 차이
잔글 |
rlatpdbs2931 (토론 | 기여) |
||
27번째 줄: | 27번째 줄: | ||
|} | |} | ||
− | + | ||
논리 연산자는 (&,│,^,~)로 이루어져 있으며 비트 논리 연산자는 그 대상이 boolean타입일 경우에는 일반 논리 연산자로 활용되지만 대상이 정수형일 경우에는 위의 표와 같이 비트 논리연산자로 활용한다. 비트 연산은 두 값을 비트 단위로 나열한 뒤 각 자릿수를 비트 연산자로 연산한다. 각 자릿수의 연산은 독립적이며 다른 자릿수에 영향을 주지 않는다. <ref name="논리연산자">〈[https://coding-factory.tistory.com/521 논리 연산자의 종류]〉, 《코딩 팩토리》</ref> | 논리 연산자는 (&,│,^,~)로 이루어져 있으며 비트 논리 연산자는 그 대상이 boolean타입일 경우에는 일반 논리 연산자로 활용되지만 대상이 정수형일 경우에는 위의 표와 같이 비트 논리연산자로 활용한다. 비트 연산은 두 값을 비트 단위로 나열한 뒤 각 자릿수를 비트 연산자로 연산한다. 각 자릿수의 연산은 독립적이며 다른 자릿수에 영향을 주지 않는다. <ref name="논리연산자">〈[https://coding-factory.tistory.com/521 논리 연산자의 종류]〉, 《코딩 팩토리》</ref> | ||
− | |||
− | '''&(AND연산)''' | + | |
+ | ==== AND 연산자 ==== | ||
+ | [[파일:And 연산자.PNG|350픽셀|섬네일|오른쪽|AND 연산자 예시]] | ||
+ | |||
+ | '''& (AND연산)''' | ||
:{|class=wikitable width=300 style="background-color:#ffffee" | :{|class=wikitable width=300 style="background-color:#ffffee" | ||
55번째 줄: | 58번째 줄: | ||
|} | |} | ||
− | &연산(논리곱)은 2진수로 표현된 2개의 피연산자를 AND연산 하여 결과를 | + | & 연산(논리곱)은 2진수로 표현된 2개의 피연산자를 AND연산 하여 결과를 나타낸다. <br> AND 연산자는 2진수로 표현된 두 비트가 모두 1일 때만 1을 반환하며, 다른 경우는 모두 0을 반환한다.<ref name="논리연산자"></ref> |
− | <ref name="논리연산자"></ref> | + | |
+ | |||
+ | |||
+ | |||
==== OR 연산자 ==== | ==== OR 연산자 ==== | ||
− | [[파일:Or 연산자.PNG| | + | [[파일:Or 연산자.PNG|350픽셀|섬네일|오른쪽|OR 연산자 예시]] |
− | '''│(OR연산)''' | + | |
+ | '''│ (OR연산)''' | ||
+ | :{|class=wikitable width=300 style="background-color:#ffffee" | ||
+ | |+ | ||
+ | !align=center colspan="2" style="background-color:#ffee88"|OR 연산 결과 | ||
+ | |- | ||
+ | |align=center style="background-color:#ffeecc"|입력값 | ||
+ | |align=center style="background-color:#ffeecc"|반환값 | ||
+ | |- | ||
+ | |align=center|0, 0 | ||
+ | |align=center|0 | ||
+ | |- | ||
+ | |align=center|0, 1 | ||
+ | |align=center|1 | ||
+ | |- | ||
+ | |align=center|1, 0 | ||
+ | |align=center|1 | ||
+ | |- | ||
+ | |align=center|1, 1 | ||
+ | |align=center|1 | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | | 연산(논리합)은 2진수로 표현된 2개의 피연산자를 OR연산 하여 결과를 나타낸다. <br> OR 연산자는 대응되는 두 비트 중 하나라도 1이면 1을 반환하며, 두 비트가 모두 0일 때만 0을 반환한다. <ref name="논리연산자"></ref> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== XOR 연산자 ==== | ||
+ | [[파일:XOR 연산자.PNG|350픽셀|섬네일|오른쪽|XOR 연산자 예시]] | ||
+ | |||
+ | ''' ^ (XOR연산)''' | ||
+ | :{|class=wikitable width=300 style="background-color:#ffffee" | ||
+ | |+ | ||
+ | !align=center colspan="2" style="background-color:#ffee88"|OR 연산 결과 | ||
+ | |- | ||
+ | |align=center style="background-color:#ffeecc"|입력값 | ||
+ | |align=center style="background-color:#ffeecc"|반환값 | ||
+ | |- | ||
+ | |align=center|0, 0 | ||
+ | |align=center|0 | ||
+ | |- | ||
+ | |align=center|0, 1 | ||
+ | |align=center|1 | ||
+ | |- | ||
+ | |align=center|1, 0 | ||
+ | |align=center|1 | ||
+ | |- | ||
+ | |align=center|1, 1 | ||
+ | |align=center|0 | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | ^ 연산(배타적 논리합)은 2진수로 표현된 2개의 피연산자를 XOR연산 하여 결과를 나타낸다. <br> XOR 연산자는 대응되는 두 비트가 서로 다르면 1을 반환하고, 서로 같으면 0을 반환한다. <ref name="논리연산자"></ref> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== NOT 연산자 ==== | ||
+ | [[파일:NOT 연산자.PNG|350픽셀|섬네일|오른쪽|NOT 연산자 예시]] | ||
+ | |||
+ | ''' ~ (NOT연산)''' | ||
+ | :{|class=wikitable width=300 style="background-color:#ffffee" | ||
+ | |+ | ||
+ | !align=center colspan="2" style="background-color:#ffee88"|NOT 연산 결과 | ||
+ | |- | ||
+ | |align=center style="background-color:#ffeecc"|입력값 | ||
+ | |align=center style="background-color:#ffeecc"|반환값 | ||
+ | |- | ||
+ | |- | ||
+ | |align=center|0 | ||
+ | |align=center|1 | ||
+ | |- | ||
+ | |align=center|1 | ||
+ | |align=center|0 | ||
+ | |- | ||
+ | |} | ||
+ | |||
+ | ^연산(배타적 논리합)은 2진수로 표현된 2개의 피연산자를 XOR연산 하여 결과를 나타낸다. <br> XOR 연산자는 대응되는 두 비트가 서로 다르면 1을 반환하고, 서로 같으면 0을 반환한다. <ref name="논리연산자"></ref> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
=== 이동 연산자 === | === 이동 연산자 === |
2020년 8월 10일 (월) 14:33 판
비트연산자(bitwise operator)는 비트 연산자는 비트(bit) 단위로 논리 연산을 할 때 사용하는 연산자이다. 비트는 바이트 단위보다 더 작은 단위이며, 2진수를 저장한다. 즉 컴퓨터에서 사용할 수 있는 최소 단위이다. 또한 전체 비트를 왼쪽이나 오른쪽으로 이동시킬 때도 사용한다.[1]
목차
개요
비트 연산자는 데이터를 비트 단위로 연산한다. 그러므로 0과 1로 표현이 가능한 정수 타입만 비트 연산이 가능하다. 비트 연산자는 기능에 따라 비트 이동 연산자, 비트 논리 연산자로 구분된다. [1]
특징
논리 연산자
비트 연산자 종 류 연산자 설 명 논리 연산자 & 대응 되는 비트가 모두 1이면 1을 반환한다. (비트 AND 연산) │ 대응되는 비트 중에서 하나라도 1이면 1을 반환함. (비트 OR 연산) ^ 대응되는 비트가 서로 다르면 1을 반환함. (비트 XOR 연산) ~ 비트를 1이면 0으로, 0이면 1로 반전시킴. (비트 NOT 연산)
논리 연산자는 (&,│,^,~)로 이루어져 있으며 비트 논리 연산자는 그 대상이 boolean타입일 경우에는 일반 논리 연산자로 활용되지만 대상이 정수형일 경우에는 위의 표와 같이 비트 논리연산자로 활용한다. 비트 연산은 두 값을 비트 단위로 나열한 뒤 각 자릿수를 비트 연산자로 연산한다. 각 자릿수의 연산은 독립적이며 다른 자릿수에 영향을 주지 않는다. [2]
AND 연산자
& (AND연산)
AND 연산 결과 입력값 반환값 0, 0 0 0, 1 0 1, 0 0 1, 1 1
& 연산(논리곱)은 2진수로 표현된 2개의 피연산자를 AND연산 하여 결과를 나타낸다.
AND 연산자는 2진수로 표현된 두 비트가 모두 1일 때만 1을 반환하며, 다른 경우는 모두 0을 반환한다.[2]
OR 연산자
│ (OR연산)
OR 연산 결과 입력값 반환값 0, 0 0 0, 1 1 1, 0 1 1, 1 1
| 연산(논리합)은 2진수로 표현된 2개의 피연산자를 OR연산 하여 결과를 나타낸다.
OR 연산자는 대응되는 두 비트 중 하나라도 1이면 1을 반환하며, 두 비트가 모두 0일 때만 0을 반환한다. [2]
XOR 연산자
^ (XOR연산)
OR 연산 결과 입력값 반환값 0, 0 0 0, 1 1 1, 0 1 1, 1 0
^ 연산(배타적 논리합)은 2진수로 표현된 2개의 피연산자를 XOR연산 하여 결과를 나타낸다.
XOR 연산자는 대응되는 두 비트가 서로 다르면 1을 반환하고, 서로 같으면 0을 반환한다. [2]
NOT 연산자
~ (NOT연산)
NOT 연산 결과 입력값 반환값 0 1 1 0
^연산(배타적 논리합)은 2진수로 표현된 2개의 피연산자를 XOR연산 하여 결과를 나타낸다.
XOR 연산자는 대응되는 두 비트가 서로 다르면 1을 반환하고, 서로 같으면 0을 반환한다. [2]
이동 연산자
비트 연산자 종 류 연산자 설 명 이동 연산자 << 비트값을 주어진 숫자만큼 왼쪽으로 이동 시킨 후 빈자리는 0으로 채운다. (left shift 연산) >> 비트값을 주어진 숫자만큼 오른쪽으로 이동 시킨 후 빈자리는 정수 a의 최상의 부호비트와 같은 값으로 채운다. (right shift 연산) >>> (자바에만 존재)비트 값을 주어진 숫자 만큼 오른쪽으로 이동 시킨 후 빈공간을 모두 0으로 채운다(left shift 연산)
각주
참고자료
같이 보기