SW 문제 해결 응용

Jingi·2024년 2월 23일

Python

목록 보기
25/32
post-thumbnail

비트 연산

  • 비트와 바이트
    • 1 bit : 0과 1을 표현하는 정보의 단위
    • 1 Byte : 8 bit를 묶어 1 Byte라고 한다.
  • 비트 연산
    • 컴퓨터의 Cpu는 0과 1로 동작하며 내부적으로 비트연산을 사용하여 덧셈, 뺄셈, 곱셈 등을 계산
  • Ex
    • 7&5 -> 0b111 & 0b101
      print(7 & 5) # 5
      print(7 | 5) # 7
  • 파이썬에서 2진수, 16진수 출력
    print(bin(10)) # 0b1010
    print(hex(10)) # 0xa
  • XOR 연산자
    • ^ : XOR 연산자, OR처럼 동작되는데 둘 다 1인 경우는 0이다.
    • Ex
      • 7070^1004 = 6258
      • 6258^1004 = 7070
  • Left와 Right 연산자
    • Left shift << : 특정 수 만큼 비트를 왼쪽으로 밀어낸다
    • Right shift >> : 특정 수 만큼 비트를 오른쪽으로 밀어낸다.
      print(bin(0b1101 << 2)) # 0b110111
      print(bin(0b1101 >> 2)) # 0b11
    • 응용
      i & (1<<n)
      1101 & (1 <<2) # 2번 비트가 1인지 확인
  • 음수 표현 방법
    • 컴퓨터는 음수를 2의 보수로 관리한다.
    • 맨 앞자리 bit(MSB)는 음수 or 양수를 구분하는 비트
        def Bbit_print(i):
            output = ''
            for j in range(7, -1, -1):
                output += '1' if & i & (1 << j) else '0'
             print(output)
        for i in range(-5,6):
            print(f'{i} = ", end=")
            Bbit_print(i)
      -5 = 11111011
      -4 = 11111100
      -3 = 11111101
      -2 = 11111110
      -1 = 11111111
      0 = 00000000
      1 = 00000001
      2 = 00000010
      3 = 00000011
      4 = 00000100
      5 = 00000101
  • NOT 연산자
    - (~)Not 연산자: 모든 비트를 반전시킨다
    - 만약 8 bit일때 ~(0001 1111)이라면 값은 1110 0000이 된다.

실수

  • 파이썬에서 실수 출력

    t1 = 10
    t2 = 3.141592
    
    print(f'{t1}) # 10
    print(f'{t2}) # 3.141592
  • 소수점 출력 방법

    • {t2:.2f} : t2 값을 소수점 둘째자리까지 반올림하여 표현
    t1 = 10
    t2 = 3.141592
    
    print(f'{t1}) # 10
    print(f'{t2:.2f}) # 3.14
  • 파이썬에서 실수 표현 범위

    • 다른 언어와 달리 더 큰 규모의 실수를 표현할 수 있다.
    • 최대 표현 : 1.8 * 10^308 (이 이상은 inf)
    • 최소 표현 : 5.0 * 10^-324 (이 이하는 0)
  • 컴퓨터는 실수를 근사적으로 관리

    • 실수는 근사 값을 저장되어 작은 오차가 생긴다.
      print(0.1+0.1+0.1 == 0.3) # False
profile
데이터 분석에서 백엔드까지...

0개의 댓글