오늘 끝나면
비트와 이진수
- ✓비트와 이진수의 핵심 문제를 한 문장으로 설명한다
- ✓오른쪽 실습에서 비트와이 어떻게 움직이는지 관찰한다
- ✓다음 강의와 이어지는 한계를 말할 수 있다
실습 미션
스위치 하나에서 숫자로 — 자릿값·16진수·signed 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.
성공 조건
- □실습의 기본값을 먼저 관찰
- □입력값이나 모드를 한 번 이상 바꿔 결과 비교
- □왜 결과가 바뀌었는지 한 문장으로 설명
반도체 설계 · 02
비트와
이진수
칩 안에는 0과 1뿐이다.
0이나 1 하나가 비트이고, 비트를 자릿값으로 모으면 모든 숫자가 된다.
이 강에서 정한 비트 폭과 부호 방식이 MyChip의 데이터 단위가 된다.
비트는 0 아니면 1, 하나
칩은 숫자를 직접 세지 못한다. 켜짐과 꺼짐만 구분한다.
전선 한 가닥에 전압이 높으면 1, 낮으면 0이다.
이 둘 중 하나를 담는 가장 작은 자리가 비트(bit)다. binary digit의 줄임말이다.
비트 하나로 표현할 수 있는 건 딱 두 가지, 0 또는 1이다.
켜짐과 꺼짐, 참과 거짓, 예와 아니오, 무엇으로 읽든 상태는 둘뿐이다.
비트 하나로는 0과 1보다 큰 수를 적을 수 없다. 더 큰 숫자는 여러 비트를 한 줄로 모아서 표현한다.
0
꺼짐 · 낮은 전압
1
켜짐 · 높은 전압
자릿값으로 모으면 숫자가 된다
비트를 한 줄로 세우면 자리마다 무게가 다르다. 그 무게가 자릿값이다.
십진수는 자리마다 1, 10, 100…으로 10배씩 커진다.
이진수는 자리마다 1, 2, 4, 8, 16…으로 2배씩 커진다.
켜진(1) 비트의 자릿값만 다 더하면 그게 십진수 값이다.
예를 들어 1011은 8 + 0 + 2 + 1 = 11이다.
맨 오른쪽이 가장 가벼운 자리(LSB)이고, 맨 왼쪽이 가장 무거운 자리(MSB)다.
비트 수가 정해지면 표현 범위도 정해진다.
비트가 n개면 서로 다른 패턴이 2ⁿ가지, 즉 0부터 2ⁿ−1까지 셀 수 있다.
16진수 = 4비트 한 묶음
비트를 길게 적으면 사람 눈이 따라가지 못한다. 그래서 4비트씩 묶어 한 글자로 줄인다.
4비트는 0000부터 1111까지 16가지다. 그 16가지에 글자를 하나씩 붙인 게 16진수다.
0부터 9까지로는 모자라서 A, B, C, D, E, F로 10부터 15까지를 적는다.
그래서 변환이 기계적이다. 4비트 묶음 하나가 16진수 한 글자에 그대로 대응한다.
1011 0110은 B6이고, 거꾸로 한 글자도 4비트로 그대로 풀린다.
코드에서는 0x를 앞에 붙여 16진수임을 표시한다.
긴 비트열을 짧게 적으면서 4비트 경계도 눈에 보인다. 그래서 칩 설계에서 주소와 데이터를 거의 16진수로 적는다.
음수는 맨 위 비트로, 2의 보수
지금까지는 0 이상만 셌다(unsigned). 음수를 담으려면 약속을 하나 더 정해야 한다.
가장 널리 쓰는 약속이 2의 보수(two’s complement)다.
맨 위 비트(MSB)의 자릿값만 음수로 뒤집는다. 4비트면 그 자릿값이 +8이 아니라 −8이 된다.
그래서 1011은 unsigned로 읽으면 11, signed로 읽으면 −8 + 2 + 1 = −5다.
같은 비트열인데 “이 칸을 signed로 읽기로 했나” 하나로 값이 갈린다.
이 방식이 표준이 된 이유는 덧셈 회로가 그대로 음수에도 맞기 때문이다. 뺄셈을 따로 만들지 않아도 된다.
4비트 signed 범위는 −8 ~ +7이고, n비트면 −2ⁿ⁻¹ ~ +2ⁿ⁻¹−1이다.
MyChip을 16비트로 정했으니, signed 범위는 −32768 ~ +32767이 된다.
직접 비트를 눌러 숫자를 만든다
비트를 켤 때마다 자릿값과 십진수, 16진수가 같이 바뀐다.
1010은 켜진 비트의 자릿값 8 + 2를 더해 십진수 10이다. 근거 패널에 자리별 기여가 그대로 뜬다.
폭을 4비트, 8비트, 16비트로 바꾸면 표현 범위가 늘어난다.
signed로 켜면 맨 위 비트 자릿값이 −로 바뀌어 같은 비트열이 음수로 읽힌다.
여기서 고른 폭과 부호 방식이 그대로 MyChip의 기본 데이터 단위가 된다.
Q. 4비트로 표현할 수 있는 서로 다른 수는 몇 개?
정답은 16개다 (2⁴).비트 하나가 2가지이고, 네 자리면 2 × 2 × 2 × 2 = 16가지 패턴이다.
unsigned면 0~15, signed(2의 보수)면 −8~+7이다. 어느 쪽이든 가짓수는 똑같이 16개다.
BIT PANEL
8
8
4
0
2
2
1
1