본문 바로가기

두두의 알고리즘/공부

[알고리즘] - 진법 변환/비트 연산

728x90

[진법 변환]

진법이란?

  • 수를 셀 때 자릿수가 올라가는 단위를 기준으로 하는 셈법의 총칭
  • 사용하는 숫자의 개수가 진법의 숫자를 의미
bin(10진수)   #2진수로 바꿔주는 함수
oct(10진수)   #8진수로 바꿔주는 함수
hex(10진수)   #16진수로 바꿔주는 함수
int(2/8/16진수)   #10진수로 바꿔주는 함수

 


[비트 연산]

비트 연산이란?

  • 한 개 혹은 두 개의 이진수에 적용되는 연산

비트 연산의 종류

  • & (AND)
  • ㅣ (OR)
  • ^ (XOR) : 다르면 1, 같으면 0
  • ~ (NOT)
    • 음수의 표현을 처리하기 위함
    • 1을 더한 뒤 부호를 바꿔줌
    bin(~0b0000)   #-0b0001
    bin(~0b0001)   #-0b0010
    bin(~0b0010)   #-3 = -0b0011
    bin(~0b0011)   #-0b0100
    
  • <<, >> (SHIFT)
    bin(0b11<<3)   #0b11000
    bin(0b1100<<2)   #0b110000
    
    bin(0b11>>1)   #0b1
    bin(0b1100>>2)   #0b11

 

비트 연산의 활용

  1. 컴퓨터 연산을 위한 비트 필드
  2. 데이터의 압축 및 암호화
  3. 유한 상태 기계
  4. 컴퓨터 통신을 위한 포트 및 소켓