[Python] 10진수 숫자를 2진수 숫자로 바꿔주기

2021. 2. 1. 13:13· 언어/Python
목차
  1. 숫자의 진수 변환 및 접두사
728x90

예전에 지금보다 더 코린이일 때, 카카오 코딩테스트 기출문제를 호기심에 풀어보다가 첫 문제부터 막힌 기억이 생생하다.

 

정답률이 무려 80%가 넘는 쉬운 문제였는데, 우리가 흔히 사용하는 10진수의 숫자를 2진수 형태로 바꿔주면 바로 풀 수 있는 간단한 문제였다.

 

물론 내가 부족하다는 게 가장 주된 이유이지만, 함수를 모른다는 이유로 문제를 풀지 못하면 꽤 억울하다.

 

그 때의 억울함을 추억하며 이 내용을 정리해보자.

 

 

https://docs.python.org/ko/3/library/functions.html

 

파이썬의 공식 문서에 등록되어 있는 bin()의 사용법은 다음과 같다.

 

어려운 내용이 아니다. 정수형 숫자를 파라미터로 bin(x)에 넘겨주게 되면, 해당 숫자에 맞는 2진수 숫자를 리턴해준다.

 

print(bin(10))

10을 2진수로 바꿔주면

 

 

다음과 같은 결과가 출력된다. 

 

 

재미있는 점은 이진수 표현 1010 앞에 '0b'라는 접두사가 붙는다는 것이다. (이 0b 덕분에 bin()으로 리턴된 값은 문자열이다)

 

이 0b는 숫자가 몇 진수에 기반을 둔 것인지 표현해주는 접두사이다.

 

이는 우리가 일반적으로 사용하는 10진수로 표현된 수들과 다른 진수로 표현된 숫자를 구분해주기 위함이다.

 

그냥 '1010' 이렇게 쳐두면 이게 2진수 표현인지 10진수 표현인지 알 도리가 없기 때문이다.

 

이진수뿐 아니라 8진수, 16진수에 대한 접두사도 있으며, 당연히 해당 진수 형태로 숫자를 변환시키는 함수도 존재한다.

 

 

숫자의 진수 변환 및 접두사

 

2진수 - bin(number) ->> 0b......

 

8진수 - oct(number) ->> 0o.....

 

16진수 - hex(number) ->> 0x.....

 

 

각각 2진수를 뜻하는 binary, 8진수를 뜻하는 Octal 16진수를 뜻하는 hexadecimal에서 따온 것이다.

 

참고로 10진수는 decimal이지만, dec(number)와 같은 함수는 따로 존재하지 않는다.

 

대신, 2, 8, 16진수로 변환된 값들(0b..., 0o..., 0x...)을 그대로 출력해보면 10진수로 변환된 값이 출력된다. 

 

 

 

저작자표시 (새창열림)

'언어 > Python' 카테고리의 다른 글

[Python] heapq(우선순위 큐) 사용법  (0) 2021.09.19
[Python] 집합 자료형 다루기  (0) 2021.08.04
[Python] collections 모듈의 Counter 함수  (2) 2021.04.04
[Python] 반복문의 제어 continue, pass, break  (0) 2021.01.08
[Python] 다양한 입력 방법 input() , sys.stdin.readline()  (0) 2021.01.08
  1. 숫자의 진수 변환 및 접두사
'언어/Python' 카테고리의 다른 글
  • [Python] 집합 자료형 다루기
  • [Python] collections 모듈의 Counter 함수
  • [Python] 반복문의 제어 continue, pass, break
  • [Python] 다양한 입력 방법 input() , sys.stdin.readline()
SeongOnion
SeongOnion
서버는 꺼지지 않아요
조무래기 코딩서버는 꺼지지 않아요
SeongOnion
조무래기 코딩
SeongOnion
전체
오늘
어제
  • 분류 전체보기 (166)
    • 알고리즘 (81)
      • 이론 (8)
      • 문제풀이 (73)
    • 언어 (15)
      • Python (9)
      • JavaScript (1)
      • JAVA (5)
    • 데이터베이스 (5)
    • 프레임워크 (15)
      • Django (7)
      • Spring (8)
    • 그 외 공부 (37)
      • 운영체제 (1)
      • 자료구조 (14)
      • 네트워크 (5)
      • CS (2)
      • 기타 (6)
      • 트러블 슈팅 (9)
    • 프로젝트 (0)
    • 개발자취 (8)
    • 회고 (3)
    • 주저리주저리 (1)
    • 기타 (비개발) (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 에라토스테네스의 체
  • 트러블 슈팅
  • 이진탐색
  • 회고
  • 정렬 알고리즘
  • 그리디알고리즘
  • 브루트포스
  • 파이썬
  • 데이터베이스
  • 장고
  • 자바
  • 알고리즘
  • BFS/DFS
  • 투 포인터 알고리즘
  • spring
  • 백준
  • 웹
  • BFS
  • 프로그래머스
  • 컨트리뷰트
  • 코딩
  • 소수
  • 코딩테스트
  • 오픈소스
  • Django
  • DP
  • 큐
  • 스택
  • 개발자
  • DRF

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
SeongOnion
[Python] 10진수 숫자를 2진수 숫자로 바꿔주기
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.