이야기박스

10진수 - 2진수 (hexadecimal - binary) 본문

Computer & Data/Computer Architecture

10진수 - 2진수 (hexadecimal - binary)

박스님 2017. 11. 24. 17:51
반응형

10진수를 2진수로 변환하는 포스팅 입니다.


○ 일반 정수

2로 나누며 나머지를 기록합니다.

나눈 결과 값이 1이 되면 종료합니다.


예) 10진수 11을 2진수로 변환


2  |    11

-------------------

2  |    5    ...    1

-------------------

2  |    2    ...    1

-------------------

        1    ...    0


이걸 차례대로 읽으면

1011(2) 가 됩니다!




○ 소수

곱하기 2를 하며, 소수점 위로 올라가는 것을 제거합니다. 

반복하며, 소수점이 완전히 제거 되면 종료합니다.


예) 10진수 0.375를 2진수로 변환


0.375 * 2 = 0.750        ...    0

0.750 * 2 = 1.500        ...    1

0.500 * 2 = 1.000        ...    1


위에서부터 차례대로 읽으면

0.011(2) 가 됩니다!



* 무한 반복되는 2진 소수

예) 10진수 0.1을 변환 한다면


0.1 * 2 = 0.2    ...    0

0.2 * 2 = 0.4    ...    0

0.4 * 2 = 0.8    ...    0

0.8 * 2 = 1.6    ...    1

0.6 * 2 = 1.2    ...    1

--------------------

0.2 * 2 = 0.4    ...    0

... (반복)




○ 음수

우선 숫자를 2진수로 변환 후, 1의 보수를 취합니다.

끝!


예) 10진수 -120을 2진수로 변환 (8비트 가정)


120(10) = 01111000(2)


1의 보수로 취하면,

10000111(2) 가 됩니다!



* 참고) 2의 보수란?

1의 보수에서 +1을 해주면 됩니다.

특정 2진수 x가 있다고 가정하고, x의 2의 보수를 x'라 한다면,

x + x' 는 해당 비트 사이즈 내의 모든 값이 0으로 변합니다.


예) x = 0001 , x' = 1111

x + x' = (1) 0000


사실상 carry 된 1은 여기선 중요하지 않죠? ㅎㅎ


반응형

'Computer & Data > Computer Architecture' 카테고리의 다른 글

RAID  (0) 2017.11.04
데이터 패스  (0) 2017.10.20
메모리 복습2  (0) 2017.10.19
메모리 복습  (0) 2017.10.19