이번 강에서는 비트 논리, 비트 이동 연산자에 대해 알아보겠습니다.
연산자의 개념을 모르신다면 11강을 참고하시기 바랍니다.
해커맨 파이썬 강의 11강_ 연산자란 무엇인가(part1) : https://poci.tistory.com/80
해커맨 파이썬 강의 11강_ 연산자란 무엇인가(part1)
이번 강에서는 연산자에 대해서 알아보겠습니다. 1. 연산자란? 연산자(operator)의 뜻을 검색해보시면 '프로그램을 짤 때 변수나 값의 연산을 위해 사용되는 부호.'라고 나옵니다. 그럼 연산은 뭘
poci.tistory.com
1. 비트의 개념
비트 논리와 비트 이동 연산자를 이해하기 위해서는 비트의 개념을 이해하고 있어야 합니다.
비트(Bit)는 ‘Binary Digit(2진수)’의 약자로, CPU가 처리하는 데이터의 최소 단위를 뜻합니다.
1비트에는 하나의 수(0 또는 1)만 들어갈 수 있으며, 비트의 수가 많아질수록 표현할 수 있는 수도 커집니다.
예를 들어 10을 표현하기 위해서는 10의 2진수인 1010을 표현해야 하므로 4비트가 필요하고,
100을 표현하기 위해서는 100의 2진수인 1100100을 표현해야 하므로 7비트가 필요합니다.
대표적인 정수형 int의 크기는 4바이트(32비트)로 2의 32 제곱까지 표현할 수 있습니다.
2. 비트 논리 연산자
12강에서 논리 연산자를 소개해드렸습니다.
논리 연산자가 변수 간의 논리 관계를 파악하여 결과를 출력하는 연산자였다면,
비트 논리 연산자는 변수의 비트 값의 논리 관계를 파악하여 결과를 출력하는 연산자입니다.
비트 논리 연산자의 종류는 다음과 같습니다.
& : 비트 and 연산자
| : 비트 or 연산자
예를 들어 10 & 6 연산을 한다고 했을 때 10은 2진수로 1010이고, 6는 2진수로 110입니다.
따라서 아래와 같이 비트 단위로 연산을 수행하게 됩니다.
1 | 0 | 1 | 0 |
& | & | & | & |
0 | 1 | 1 | 0 |
0 | 0 | 1 | 0 |
따라서 10 & 6 연산의 결과는 0010(2)이 됩니다.
마찬가지로 10 | 6 연산을 하게 된다면 다음과 같은 연산을 수행합니다.
1 | 0 | 1 | 0 |
| | | | | | | |
0 | 1 | 1 | 0 |
1 | 1 | 1 | 0 |
즉, 10 | 6의 결과는 1110(14)이 됩니다.
3. 비트 이동 연산자
비트 이동 연산자는 값의 비트를 왼쪽, 오른쪽으로 이동시키는 연산자로, >>, <<가 있습니다.
>> : 비트를 오른쪽으로 이동시킨다.
<< : 비트를 왼쪽으로 이동시킨다.
사용법
[비트를 이동시킬 값] >> [이동시킬 칸의 수]
[비트를 이동시킬 값] << [이동시킬 칸의 수]
예를 들어 10 >> 2라고 했을 때 10의 2진수인 1010을 오른쪽으로 2칸 이동시킨다는 의미이므로
이런 식으로 비트가 이동되므로 10(2)이 결과값이 됩니다.
반대로 10 << 2는 10의 2진수인 1010을 왼쪽으로 2칸 이동시킨다는 의미이므로
이렇게 비트가 이동하여 101000(40)이 결과값이 됩니다.
정리
- 비트 : CPU가 처리하는 데이터의 최소 단위
- 비트 논리 연산자 : 변수의 비트 값의 논리 관계를 파악하여 결과를 출력하는 연산자
- 비트 이동 연산자 : 값의 비트를 왼쪽, 오른쪽으로 이동시키는 연산자
강의가 유익하셨거나 마음에 드셨으면 구독과 좋아요, 댓글 부탁드립니다.
궁금하신 점이나 질문은 댓글 남겨주시기 바랍니다.
'파이썬' 카테고리의 다른 글
해커맨 파이썬 강의 15강_ 리스트란 무엇인가 (0) | 2019.11.06 |
---|---|
해커맨 파이썬 강의 14강_ 조건문이란 무엇인가 (0) | 2019.11.03 |
해커맨 파이썬 강의 12강_ 연산자란 무엇인가(part2) (0) | 2019.10.27 |
해커맨 파이썬 강의 11강_ 연산자란 무엇인가(part1) (0) | 2019.10.24 |
해커맨 파이썬 강의 10강_ 다양한 문자열 함수들 (0) | 2019.10.21 |