일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- c#
- unity
- 당구 연습
- pccp 기출문제
- C++
- enetrole
- 2022 kakao
- gameinstancesubsystem
- Algorithm
- 구현
- 프로젝트
- 2019 kakao
- pcce 기출문제
- netmode
- 최대값과 최솟값
- 리플렉션 시스템
- 코딩테스트
- unrealengine
- ai controller
- network model
- Unreal Engine
- 프로그래머스
- fruitspuzzle
- issac3d
- 백준
- timelessadventure
- Summer/Winter Coding
- 로컬 네트워크 연결
- fabrik ik
- 2018 kakao
- Today
- Total
LeeTaes 공부노트
[Algorithm] 10진수를 2진수로 변환하기 본문
개요
코딩테스트 문제를 풀다보면 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로 나누기... )
10진법을 2진법으로 변환하는 코드
참고 문헌
요네다 마사타카. 『문제 해결을 위한 알고리즘 with 수학』. 위키북스, 2023.
'코딩테스트 > 알고리즘' 카테고리의 다른 글
[Algorithm] 에라토스테네스의 체 (소수 판별) (0) | 2024.07.30 |
---|