LeeTaes 공부노트

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

코딩테스트/알고리즘

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

리태s 2024. 8. 26. 14:08
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
반응형