10진수 -> 2진수

십진수가 소수점 위면 2로 나눠서 계산 후 아래에서 위로 읽음
십진수가 소수점 아래면 2를 곱해서 계산 후 위에서 아래로 읽음

 

1) 소수점 위 변환

2로 나눈 나머지를 구하고, 2로 나누기를 반복
나온 결과를 아래에서 위로 읽으면 된다.

예를들어 10진수 4를 2진수로 변환하려면
4%2는 0, 4를 2로 나눠주고 => 0
2%2는 0, 2를 2로 나눠주고 => 0
1%2는 1, 1을 2로 나눠주고 => 1
끝났으니 아래에서 위로 읽으면 십진수 4는 이진수 100이 된다.

 

2) 소수점 아래 변환

2를 곱한 후 소수점 위 값을 구하고, 그 값을 빼주기를 반복
나온 결과를 위에서 아래로 읽으면 된다.

예를 들어 0.625를 2진수로 변환하려면
0.625에 2를 곱해서 1.25, 여기서 소수점 위의 수 1을 빼줌 => 1
다시 0.25에 2를 곱해서 0.5, 소수점 위의 0을 빼줌 => 0
다시 0.5에 2를 곱해서 1.0, 소수점 위의 1을 빼줌 => 1
숫자가 0이 되면 끝이고 결과를 위에서 아래로 읽으면 십진수 0.625는 이진수 0.101이 된다.


2진수 -> 10진수

가장 뒷 자리부터 2의 자리번호제곱을 누적

예를들어 100이라면
가장 뒷자리인 0 * 2의 0승
그 다음 자리인 0 * 2의 1승
그 다음 자리인 1 * 2의 2승
모든 결과를 다 더하면 4


C++ 방식의 진법변환 구현 :  https://smallpants.tistory.com/156