본문 바로가기
TIL - 프로그래밍/개념, 설정

[Python] 2진수, 8진수, 16진수

by chaemj97 2022. 3. 22.
728x90
  • 10진수 -> 타진수로 변환
    • 원하는 타진법의 수로 나눈 뒤 나머지를 거꾸로 읽기
    • ex) 149를 2진수로

  • 2진수, 8진수, 16진수간 변환

 

  • 다른 진수의 형태로 표현
    • 2진수 : 0b
    • 8진수 : 0o
    • 16진수 : 0x (0~9, A~F)

 

  • ex) 10을 2진수, 8진수, 16진수로 표현하기
# 2진수
print(10 == 0b1010)
# 8진수
print(10 == 0o12)
# 16진수
print(10 == 0xA)

 

  • 숫자에서 다른 진수의 문자열로 바꾸기
# 2진수 
print(bin(10)) # 0b1010
# 8진수
print(oct(10)) # 0o12
# 16진수 
print(hex(10)) # 0xa

 

  • format() 내장 함수로 다른 진수의 문자열로 바꾸기
# 접두어 제외

# 2진수
print(format(10,'b')) # 1010
# 8진수
print(format(10,'o')) # 12
# 16진수
print(format(10,'x')) # a
print(format(10,'X')) # A

# 접두어 포함

# 2진수
print(format(10,'#b')) # 0b1010
# 8진수
print(format(10,'#o')) # 0o12
# 16진수
print(format(10,'#x')) # 0xa
print(format(10,'#X')) # 0xA

 

  • 다른 진수의 문자열을 숫자형으로 바꾸기
    (int() 함수의 2번째 인자의 디폴트 값은 10)
# 2진수
print(int('0b1010',2)) # 10
# 8진수
print(int('0o12',8)) # 10
# 16진수
print(int('0xa',16)) # 10

  • 컴퓨터에서의 음의 정수 표현 방법
    • 1의 보수 : 부호와 절대값으로 표현된 값을 부호 비트를 제외한 나머지 비트들을 0은 1로, 1은 0으로 변환
      • ex)
        • -6 : 1000000000000110 : 부호와 절대값 표현
        • -6 : 1111111111111001 : 1의 보수 표현
      • 문제점 : -0,+0이 생김
    • 2의 보수 : 1의 보수방법으로 표현된 값의 최하위 비트에 1을 더한다.
      • ex)
        • -6 : 1111111111111010 : 2의 보수 표현
      • 맨앞 1이면 -, 0이면 +
      • 8bit인 경우 -128~127까지 256가지 표현 가능
728x90
반응형

'TIL - 프로그래밍 > 개념, 설정' 카테고리의 다른 글

[Python] 반복과 재귀  (0) 2022.03.26
[Python] 비트 연산  (0) 2022.03.23
[Python] 복잡도 분석, 표준 입출력 방법  (0) 2022.03.20
[Python] BFS  (0) 2022.03.18
[Python] Queue2 (우선순위큐, 버퍼)  (0) 2022.03.17

댓글