이야기박스
10진수 - 2진수 (hexadecimal - binary) 본문
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 |