10진수를 2진수로 변환하는 방법

10진수를 2진수로 변환하는 방법입니다.

2로 나누면서 나머지를 오른쪽에 나눌때마다 기입하면서 더이상 나눠지지 않을 때 까지 나눕니다. 그리고 아래서 부터 오른쪽 위방향으로 읽어나가면 됩니다.아래쪽은   이 방법은 10진수를 8진수로, 10진수를 16진수로 바꾸는 경우에도 똑같이 적용 됩니다. 

이 때 맨 아래 비트를 MSD(most significant digit), 맨 위 비트를 LSD(least significant digit)라고 합니다.


10진수를 2진수로



그러면 이 원리는 어떻게 되는지 간단히 알아보겠습니다.


1583을 각 자리수별로 나타내면 각 부분은 기수,지수,가수 부분으로 나누어집니다. 각 부분의 가수를 구하는 것이 핵심인데, 10으로 나누게 되면 위와같이 가수부분이 순서대로 나오게됩니다. 이 원리를 일반화 시키면 10진수를 2진수, 8진수, 16진수로 바꿀 수 있게 됩니다.

2진수를 8진수로 바꾸는 방법은 세자리씩 끊어서 바꾸면되고, 16진수로 바꾸는 것은 4자리씩 끊어서 바꾸면 됩니다. 10진수로 바꾸는 방법은 각각 자리수별로 지수표현으로 바꾼후 더해주면 됩니다.


2014/05/02 - [컴퓨터구조] - 2진수를 10진수로 변환하는 방법(진수 간 변환 방법들)



10진수 음수를 2진수로 표현하는 방법(2의보수법)


추가 : 음수를 다루는 법은 몇가지가 있습니다. 그냥 우리는 양의 2진수에 -를 붙이면 되는데, 여기서는 2의 보수법(컴퓨터가 음수를 다루는 방법입니다. 컴퓨터는 +,-기호를 비트로 다루어야 하기 때문에 이런 방식이 필요합니다.)을 간단히 보여드리겠습니다. 위 그림은 잘못된 부분이 있으므로 아래 그림을 수정 추가함.

1. 먼저 부호를 빼고 2진수로 변환을 합니다.

2. 최상위비트(MSB)쪽에 0을추가합니다. 

3. 2의 보수로 바꿉니다.

부호비트는 2^6승으로 -32를 표현하게 됩니다. 나머지 비트의 합은 7이고 두 수를 더하면 -25가됩니다.


이 경우 100111이 2의 보수법임을 명시해줘야 합니다. 그렇지 않으면 최상위 비트가 음수를 뜻하는지 알 수 없으니 말입니다. 2의 보수법을 사용하지 않은 경우 단순히 2진수의 음수는 양수에 -를 붙이면 됩니다.



10진 소수를 2진수로 변환하기

소수는 정수와 반대로 곱해나갑니다. 그리고 MSD MSB와 LSD LSB의 위치가 정수의 변환과 반대입니다. 최상위 비트는 소수 1자리부터시작됩니다. 그러므로 위 그림의 변환 결과는 0.101입니다.

이 댓글을 비밀 댓글로
    • Jack
    • 2014.04.05 06:33
    제일 첫번쨰로 올리신 사진 퍼가겠습니다

    출저는 밝히고 사용하겠습니다 감사합니다^^

    (혹시 안되신다면 바로 내릴게요)