본문 바로가기

CS/기타

2진수 10진수 변환

1. 2진수와 10진수의 원리 

자신이 표현할 수 없는 범위가 나타나면 자릿수를 1올리고 0을 채운다. 

        ex) 10진수 > 0 1 2 3 4 5 6 7 8 9 > 다음 표현할 수 있는 숫자 없음 따라서 자릿수 1올리고 0 채움 > 10 11 12 ...

              2진수 > 00 01 > 다음 표현할 숫자 없음 > 10 11 > 다음 표현할 숫자 없음 > 100 101 ...

 

2. 부호 없는 비트에서의 변환

     a. 2진수를 10진수로 변환 

         2진수 각 자리에 해당하는 2의 n승들을 곱한 뒤 다 더한다.

         

       b.10진수를 2진수로 변환

           두가지 방법 - ㄱ) 10진수를 2로 나눌 수 없을 때까지 나눈다.

                                       나머지를 밑에서 부터 읽는다.

                                 ㄴ) 10진수보다 크지 않은 2진수 중 제일 큰 값을 뺄 수 없을 때까지 뺀다.

                                       그 값들로 2진수를 구한다. 

 

2. 부호 있는 비트에서의 변환

(이때 맨 왼쪽의 비트는 부호를 나타내는 비트! 1이면 음수이고, 0이면 양수이다. )

     a. 음의 정수인 2진수를 10진수로 변환

         2진수를 2의 보수를 취해준다. (2의 보수란 1은 0으로, 0은 1로 바꿔주고 1을 더해주는 것.)

         나온 값을 10진수로 변환하고 -를 붙인다.

     b. 음의 정수인 10진수를 2진수로 변환

         10진수의 절댓값을 2진수로 변환한다.

         나온 값을 2의 보수를 취해준다. 

 

**2의 보수 쓰는 이유? 

1의 보수(그냥 0과 1 뒤집기만 하는 것)를 쓸 경우 0을 나타내는 표현이 2가지가 되어버린다. 

0000 0000

1111 1111

2의 보수를 취하면 +1 해줌으로 0의 2진수 표현은 언제나 0000 0000 이다. 

'CS > 기타' 카테고리의 다른 글

1. AI란 무엇인가?  (0) 2022.11.17