- 비트 조작
- 논리 회로
ALU 는 비트 조작의 담당자이자 현대 디지털 컴퓨터의 기본 개념이자 근간
- 부울 연산자
AND, OR, NOT 은 기본 부울 연산자
기본 부울 연산자를 결합하거나 조합해 보조 연산(XOR) 생성
XOR 매우 중요
- 비트 연산자
&, |, ^, ~ 동일하게 작동
NOT 인 ~(틸드)는 2의 보수에서 1을 뺀 값과 같음
- 산술 연산자
+/-, 곱셈/뺄셈, 시프팅, ^, ~ 제공
- 자릿수 제한 비트 연산
자릿수 제한을 통해 결과값 제어
자릿수 만큼의 최댓값을 지닌 비트 마스트 생성 후 해당 값과 XOR 통해 값 생성
- 2의 보수
- 2의 보수 숫자 포맷
컴퓨터가 음수를 저장하기 위해 취하는 방법 중 하나
맨 앞 비트를 부호 비트 로 사용하고 나머지를 숫자 비트로 표현하는 방법
시계 방향으로 증가하는 형태로 값 나열
Python 은 부모 별도 필드로 갖고 있으며 비트 연산이 필요할 때만 2의 보수로 변환하는 작업함
음수 표현시에는 양의 정수를 표현하는 방식과 동일하게 하고 앞에 부호만 덧붙여서 보여주는 방식을 통해 2의 보수 값 실제로 보여주지 않음
- 2의 보수 수학 연산
양수를 음수로, 음수를 양수로 바꾸는 작업
비트 연산자 NOT 은 2의 보수에서 1을 뺀 것
2의 보수 수학 연산은 비트 연산자 NOT 에서 1을 더한 것
- 비트 연산자 NOT
기준 비트 내에서 정확히 1과 0을 서루 바꿈
- 파이썬의 진법 표현
2진수와 10진수는 bin(), int() 사용해 서로 변환
16진수는 hex() 로 변환
- XOR 을 이용한 변수 스왑
XOR 을 이용하여 임시 변수 없이 스왑 가능