티스토리 뷰
라즈베리파이 같은 하드웨어가 인기를 끌면서 (C언어 만큼은 아니지만) 파이썬으로 하드웨어를 제어하는 경우가 늘어나고 있습니다. 하드웨어 쉽게 제어하기 위해서는 비트연산자를 잘 사용할 수 있어야 합니다.
파이썬(Python) 비트 연산
비트연산자 종류 - AND(&), OR(|), XOR(^), NOT(~), Shift(<<, >>)
기본적으로 비트 연산은 1, 0으로 이루어진 2진수를 연산하는 방식이다.
파이썬에서는 0b을 사용하여 2진수를 입력한다. (0o 8진수, 0x 16진수)
bin() 함수는 숫자(정수)를 이진수 문자열로 변환한다.
(2진수를 눈으로 확인하기 위해 사용, 연산을 하려면 다시 형변환을 해야함)
AND연산(&)
0b10101010 & 0b11000011
AND연산은 각 자릿수를 비교하여 둘다 1이면 1, 아니면 0
OR연산(|)
0b10101010 | 0b11000011
OR연산은 각 자릿수를 비교하여 둘 중 하나만 1이면 1
XOR연산(^)
0b10101010 ^ 0b11000011
XOR연산은 각 자릿수를 비교하여 다르면 1, 같으면 0
NOT연산(~)
~0b10101010
NOT연산은 1은 0으로 0은 1로 변환
0b10101010(170)에 ~ 연산을 하니 -0b10101011(-171)을 리턴했음
고로 ~ 연산 결과는 -(입력값 + 1)이다. (1을 더하고 음수로 변환)
결과풀이과정
10101010 (170)
01010101 (1의 보수)
10101010 (다시 1의 보수)
10101011 (1을 더하여 2의 보수를 만듬)
-10101011 (음수 기호 추가, -171)
(파이썬은 순수 비트연산이 아닌 정수로 비트연산을 하면서 이렇게 복잡해졌음)
쉬프트연산(<<, >>)
0b10101010 << 2
각 비트를 왼쪽으로 옮긴다.
왼쪽 쉬프트 연산은 2를 곱하는 효과가 있다.
(곱하기, 나누기 보다 쉬프트 연산이 빠르기 때문에 종종 사용됨)
0b10101010 >> 2
각 비트를 오른쪽으로 옮긴다. (오른쪽 부터 값이 버려짐)
오른쪽 쉬프트 연산은 2로 나누는 효과가 있다.
파이썬 print 함수 사용법 정리 (파이썬 화면 출력)
파이썬 input 함수 사용법 정리 (파이썬 키보드 입력)
파이썬 자료형 비교 정리 (파이썬 정수, 실수, 불, 문자열, 리스트, 튜플, 집합, 사전)
- Total
- Today
- Yesterday
- 게임기 만들기
- 라즈베리파이 NAS
- 파이썬 연산자
- 안드로이드 프로그래밍
- 라즈베리파이 오락실
- 리눅스 설치
- 리눅스 기초
- raspberry pi
- linux
- Android Programming
- 파이썬 프로그래밍
- 파이썬 자료형
- 라즈베리파이 활용
- 리눅스
- Android Studio
- 추억의 오락실
- 리눅스 명령어
- 파이썬 함수
- 이클립스 사용법
- 라즈베리파이
- 파이썬 기초
- 라즈베리파이 나스
- PYTHON
- mysql
- Eclipse ADT
- jsp 프로그래밍
- 리눅스 cat
- 파이썬
- openmediavault
- eclipse
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |