본문 바로가기

컴퓨터/C언어

수학 ㅡ 2진수 10진수 끼리 변환하기 ( 2 -> 10 ) ( 10 - > 2 )

안녕하세요 sdk입니다

오늘은 진법에 대해 알아보도록 하겠습니다


우선 10 진수 먼저 보면 

평상시 우리가 쓰는 방식으로써

숫자 10개를 이용하여 숫자를 표현하는 방법으로 

0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 

를 이용하여 숫자를 나타내는것 입니다

이런식으로 말이죠


그럼 2진수를 알아볼까요

2진수는 

단 0 , 1 을 이용하여 숫자를 표현하는 방법입니다



 10 진수 

 1

 2 

 3 

 4 

 5 

 2 진수

 1

 10

 11

 100 

 101


단 2가지 수로 숫자를 나타내는것을 2진수 라고 하며

주로 컴퓨터에서 사용됩니다

켜짐 ( 1 ) 

꺼짐 ( 0 ) 

을 이용해 나타낼수도 있죠.

그럼 

10진수에서 2진수로 변환하는 방법을 알아보도록 하겠습니다 

과정만 설명하자면

1. 2진수로 변환할 숫자를 2로 나눕니다. 나머지는 옆에 써둡니다

2 . 1이 될때까지 반복

3.  마지막에 남은 1을 앞으로 나머지를 쭉 써주면 됩니다

ex) 

10을 2진수로 나타내면 

                                   

                 맨 마지막 몫인     


이걸 거꾸로 읽어 

1 0 1 0 으로 쓰면 되겠습니다

반대로 2 진수에서 10진수로 나타내는 방법을 알려드리겠습니다

이렇게 2진수가 있다면

간단하게

1이 존재하는 자릿수 - 1 제곱 해준뒤 더해주면 되는데요

이게 뭔소리냐면 

1010 은 

 2진수

  1

 0 

 1 

 0 

 모두 더한다

 


 


 


  


즉 8 + 2 = 10 입니다 

잘 이해가 안되시나요 ?

그러니까 

1010은 총 4자리 숫자입니다

가장 처음 1이 등장한 자리수는  4번째 자리수 입니다

따라서 여기에 2의 ( 4 - 1 ) 제곱 그러니까 2의 3제곱을 해줍니다 따라서 8 

그리고 다시 1이등장한 자릿수는 2번째 자릿수 이기 때문에 2의 ( 2 - 1 ) 제곱을 해줍니다 즉 2의 1제곱 따라서 2 

그 8 과 2를 더하면 10이 나옵니다



이런식으로 하시면 되겠습니다.



다음포스팅때는 16진수에 대해 포스팅 하도록 하겠습니다

이상입니다.






여러분들의 댓글은 큰 힘이됩니다 :)