1 minute read

  • 비트 조작
    • 논리 회로 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 을 이용하여 임시 변수 없이 스왑 가능