[Algorithm] 10진수를 2진수로 변환하기

2024. 8. 26. 14:08·코딩테스트/알고리즘
목차
  1. 개요
  2. 2진법이란?
  3. 10진법을 2진법으로 변환하는 방법
  4. 10진법을 2진법으로 변환하는 코드
728x90
반응형

개요

코딩테스트 문제를 풀다보면 10진수를 2진수로 변환하여 연산하는 로직을 구현해야 하는 부분이 종종 발생합니다.

어렵지는 않지만, 간단한 것부터 수학적인 알고리즘을 정리해보기 위해 10진수를 2진수로 변환하는 방법에 대해 정리해보았습니다.

2진법이란?

우리는 일상적으로 0 ~ 9까지의 10개의 숫자를 사용하여 수를 나타내는 10진법을 사용합니다.

하지만 컴퓨터는 내부적으로  0과 1이라는 두 개의 숫자만을 사용하여 수를 나타내는 2진법을 사용해서 계산합니다.

 

10진법에서는 10이 만들어지는 순간 자리수를 올리며, 2진수도 동일하게 2가 만들어지는 순간 자리수를 올린다고 생각할 수 있습니다. 예를 들어 "3"을 2진법으로 표현한다면 "11"이 되며, "4"는 "101"이 되는 것을 알 수 있습니다.

 

즉, 자리 수가 하나씩 증가할 때마다 기존 자리수 x2를 해준다고 볼 수 있으며 이는 3진법, 4진법... 등등 모두 동일하게 적용됩니다. (3진수의 경우 x3, 4진수의 경우 x4)

10진법을 2진법으로 변환하는 방법

10진법을 2진법으로 변환하기 위한 가장 쉬운 방법은 1씩 증가시켜가며 확인하는 방법도 있지만 더욱 효율적인 방법이 존재합니다.

 

위와 같이 자리수가 1 증가할 때마다 x2를 해주는 것과 반대로, 10진수를 2로 나눠가며 나머지 값을 통해 2진법으로 변환이 가능합니다.

 

즉, 입력받은 수가 0이 될 때까지 계속해서 2로 나눠 나머지를 옆에 적은 뒤 모든 계산이 끝나면 나머지를 아래부터 읽는 방식으로 10진법을 2진법으로 변환할 수 있습니다. (3진법의 경우3으로 나누고, 4진법의 경우 4로 나누기... )

 

6을 2진수로 변환하는 과정

10진법을 2진법으로 변환하는 코드

 

10을 변환한 결과

참고 문헌

요네다 마사타카. 『문제 해결을 위한 알고리즘 with 수학』. 위키북스, 2023.

https://wikibook.co.kr/algorithm-math/

 

문제 해결을 위한 알고리즘 with 수학: 알고리즘 문제 해결에 꼭 필요한 수학적 지식과 사고력

알고리즘과 수학의 조화, 초보자를 위한 필수 가이드! 이 책은 수학과 알고리즘을 함께 공부할 수 있는 완벽한 가이드입니다. 알고리즘은 프로그래밍을 통해 문제를 해결하기 위한 필수 도구이

wikibook.co.kr

728x90
반응형
저작자표시 비영리 변경금지 (새창열림)

'코딩테스트 > 알고리즘' 카테고리의 다른 글

[Algorithm] 그리디(Greedy) 알고리즘  (0) 2024.10.31
[Algorithm] 에라토스테네스의 체 (소수 판별)  (0) 2024.07.30
  1. 개요
  2. 2진법이란?
  3. 10진법을 2진법으로 변환하는 방법
  4. 10진법을 2진법으로 변환하는 코드
'코딩테스트/알고리즘' 카테고리의 다른 글
  • [Algorithm] 그리디(Greedy) 알고리즘
  • [Algorithm] 에라토스테네스의 체 (소수 판별)
리태s
리태s
게임 클라이언트 프로그래머 직무를 준비하며 공부한 내용을 정리한 블로그입니다.
    반응형
    250x250
  • 리태s
    LeeTaes 공부노트
    리태s
  • 전체
    오늘
    어제
    • Home (165)
      • 프로젝트 (20)
        • Isaac 3D (5)
        • TimelessAdventure (13)
        • FruitsPuzzle (2)
      • Game Programming (25)
        • C# (8)
        • Unity Engine (6)
        • Unreal Engine (8)
        • UE_Multiplayer (3)
      • 코딩테스트 (111)
        • 프로그래머스 (Lv. 0) (27)
        • 프로그래머스 (Lv. 1) (31)
        • 프로그래머스 (Lv. 2) (21)
        • 백준 (Study) (29)
        • 알고리즘 (3)
      • CS지식 (7)
        • 운영체제 (7)
      • 일상 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    구현
    CS지식
    코딩테스트
    백준
    timelessadventure
    Unreal Engine
    fsoftobjectpath
    dataasset
    unity
    프로세스
    프로젝트
    후기
    ai controller
    Summer/Winter Coding
    프로그래머스
    2022 kakao
    C++
    tsoftobjectptr
    fruitspuzzle
    Algorithm
    issac3d
    delegate
    sesac
    unrealengine
    pcce 기출문제
    c#
    2019 kakao
    project t.a develop
    2018 kakao
    청년취업사관학교
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
리태s
[Algorithm] 10진수를 2진수로 변환하기

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

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

블로그 게시글

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

모든 영역

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

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