본문 바로가기
CS

소수점 진법 변환을 알아보자!

 

안녕하십니까!

오류 고치다가 온 하프 입니다. 👾

 

이번에는 소수점 변환에 대해서 알아봅시다

소수점 변환은 헷갈리는 부분이 많으니 여러번 보셔야할 수 있습니다!

 

📝 목차

 

 

10진수

10진수 to 2진수

 

소수점 0.125(10)을 2진수로 변경해보겠습니다.

소수점의 경우는 변환하고자 하는 진수를 곱한 뒤 0으로 끝나면, 마치면 됩니다.

 

아래의 예시를 보고 갑시다 ⭐

 

0.125에 변환하고자 하는 진수(2)를 계속 곱하여, 올림이 없으면 0을 있으면 1을 차례차례 작성해주면 됩니다.

 

0.125에서 2를 곱하게 되면0.250, 올림이 없으니 0

0.250에서 2를 곱하게 되면0.5, 올림이 없으니 0

0.5에서 2를 곱하게 되면1.0, 올림이 있으니 1

 

나머지가 없으므로, 종료하게 됩니다!

순서대로 나열해주면 0.001 이 되겠네요!

 

 

10진수 to 8진수

10진수에서 8진수로 변경하는 법 또한 같은 방식으로 하면 됩니다.

0.125에서 변경하고자 하는 진수(8)을 곱하여, 위와 같은 형태로 진수를 변환 시킵니다.

 

0.125에서 8을 곱하게 되면 1.0, 올림이 있으니 1

 

나머지가 없으므로, 종료하게 됩니다.

순서대로 나열을 하면 0.1 이 되겠네요!

 

 

10진수 to 16진수

16진수도 8진수에서 했던것과 똑같이 하면 됩니다.

 

0.125에서 16을 곱하게 되면 2.0, 올림이 있으니 2

 

나머지가 없으므로, 종료하게 됩니다.

그러면 0.2가 되겠네요!

 


2진수

2진수 to 10진수

0.125를 2진수로 하면 0.001 이었죠!

이것을 10진수로 다시 변환하려면 어떻게 해야할까요?

 

변환하는법은 어렵지 않습니다.

 

각각의 자리수를 구하여 더하면 됩니다.

( 0 * (1/2) ) + ( 0 * (1/4)) + (1 * (1/8)) = 0.125 이렇게 결과를 구할 수 있습니다!

 

 


8진수

8진수 to 10진수

0.125는 8진수로 0.1 이었죠!

이것또한 위에서 구했던 방식과 똑같이 구하면 됩니다.

 

(1 * 0.125) = 0.125

어떻게 보면, 그냥 기본적인 사칙연산이라고도 볼 수 있겠지요..? 🤔

 

 


16진수

16진수 to 10진수

0.125는 16진수로 0.2 였죠!

눈썰미 있으신 분들은 금방 알아채셨을 겁니다..

 

8진수 to 10진수에서 그냥 서로 2씩 곱해준거라고 보면 되겠죠 🤣

알고보면 정말 별거 없습니다!


마무리

이렇게 진법 변환을 모두 해보았습니다.

이정도만 알면 진법 변환하는데에는 큰 무리는 없을것이라 생각이 듭니다.

 

0.125를 예시로 한것도 그냥 빨리 이해가 되고 쉬우니까 이런 숫자로 정했습니다.

 

만약에 0.1,  0.2,  0.3  이런숫자로 했더라면 무한소수로 나오게 되어.. 계산은 절대적으로 불가능 합니다. 🥹

 

 

어?! 그러면 0.1, 0.2가 무한 소수로 나오게 된다면 컴퓨터는 0.1, 0.2 계산은 어떻게 하는거지? 🤔

라고 생각할 수 있을겁니다!

 

이러한 궁금증은 다음글에서 해결을 해보도록 합시다

 

 

'CS' 카테고리의 다른 글

GIT Bash로 커밋, 푸시를 해보자!  (0) 2024.06.08
0.1 + 0.2 != 0.3 ... ?  (0) 2024.05.23
진법 변환을 알아보자  (4) 2024.03.24
자바스크립트 동작 원리  (2) 2024.03.17
브라우저의 동작 과정을 알아보자!  (0) 2024.02.25