-
Lecture 3(10진수, 2진수, Compliment)디지털 회로개론 2021. 10. 5. 23:59728x90
10진수
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
23 = (2 * 10^1) + (3 * 10^0)
85.56
whole number : 85
fraction number : 56
ex) 568.23 = (5 * 10^2) + (6 * 10^1) + (8 * 10^0) + (2 * 10^-1) + (3 * 10^-2)
= 500 + 60 + 8 + 0.2 + 0.03
= 568.23
2진수
1 , 0
0110 = (0 * 2^3) + (1 * 2^2) + (1 * 2^1) + (0 * 2^0)
= 0 + 4 + 2 + 0
= 6
비트 가 n개 일때, 2진수로 만들 수 있는 가장 큰 수는 2^n -1 입니다.
ex) 1111은 bit가 4이고 1111은 10진수로 15입니다. 15 = 2^4 -1 입니다.
MSB / LSB
MSB는 2진수의 수중에 맨 왼쪽에 있는 수입니다.
LSB는 2진수의 수중에 맨 오른쪽에 있는 수입니다.
ex) 100 = MSB : 1(2^2) / LSB : 0(2^0)
ex) 1101.1011
positive / negative
MSB in a binary fractional number : 1101.1011
1101.1011 = 8+ 4 + 0 + 1 + 0.5 + 0 + 0.125 + 0.0625
= 13.6875
ex) 2진수 0.1011 을 10진수로 바꾸시오.
whole number은 0이므로 무시하고 fraction number (1 * 2^-1) + (1 * 2^-3) + (1 * 2^-4) = 0.5 + 0.125 + 0.0625 = 0.6875
Decimal numbers -> Binary(10진수 -> 2진수 변환)
1) Sum-of-Weights Method
1) whole number
주어진 10진수 수에서 2의 거듭제곱 수를 찾아내는 것입니다.
ex) 9 = 8 + 1 = (1 * 2^3) + (0 * 2^2) + (0 * 2^1) + (1 * 2^0) = 1001
ex) 12 = 8 + 4 = (1 * 2^3) + (1 * 2^2) + (0 * 2^1) + (0 * 2^0) = 1100
2) fraction number
ex) 0.75 = 0.5 + 0.25 = (1 * 2^-1) + (1 * 2^-2) = 0.11(binary)
2) Repeated Division-by-2 Method
1) whole number
주어진 10진수의 수를 2로 계속해서 나누는 방법입니다.
나머지가 1이 되었을때, 멈춥니다.
ex) 12/2 = 6 ....0(LSB)
6/2 = 3 ......0
3/2 = 1(MSB) ......1
따라서 12 = 1100(binary) 입니다.
2) fraction number
whole number와 다르게 2를 계속 곱해줍니다.
곱하면 whole number 부분은 Carry라고 하며 2진수 자리를 차지합니다.
또 2를 곱할때는 Carry부분을 빼주고 곱해줍니다.
예를 들어 곱했을때 1.25가 나오면 Carry 부분은 1이고 다시 2를 곱할때는 0.25를 곱해줍니다.
곱하는 수가 0이 되면 멈춥니다.
ex) 0.625 => 0.625 * 2 = 1(Carry).25 ......1(Carry)(MSB)
0.25 * 2 = 0(Carry).5 ............0(Carry)
0.5 * 2 = 1(Carry).0 ...............1(Carry)(LSB)
따라서 0.625 = 0.101(binary)
Binary Arithmetic(2진수 계산)
1) Binary Addition(2진수 덧셈)
<기본 연산>
0 + 0 = 0 (Sum : 0, Carry : 0)
0 + 1 = 1 (Sum : 1, Carry : 0)
1 + 0 = 1 (Sum : 1, Carry : 0)
1 + 1 = 10 (Sum : 0, Carry : 1)
<Carry 가 있을때 연산) 빨간색은 Carry bit
1 + 0 + 0 = 01 (Sum : 1, Carry : 0)
1 + 0 + 1 = 10 (Sum : 0, Carry : 1)
1 + 1 + 0 = 10 (Sum : 0, Carry : 1)
1 + 1 + 1 = 11 (Sum : 1, Carry : 1)
ex) 011 + 001 = 100
빨간색은 Carry bit입니다. ① -> ② -> ③ 순으로 진행됩니다.
ex) 111 + 011= 1010
빨간색은 Carry bit입니다. ① -> ② -> ③ 순으로 진행됩니다.
2)Binary Subtraction(2진수 뺄셈)
<기본 연산>
0 - 0 = 0 (Difference : 0, Borrow : 0)
1 - 1 = 0 (Difference : 0, Borrow : 0)
1 - 0 = 1 (Difference : 1, Borrow : 0)
10 - 1 = 1 (Difference : 1, Borrow : 1)
Borrow란 Carry랑 비슷한 개념입니다. 예를 들어 0 - 1 이라고 할때 Borrow가 생겨납니다.
ex) 101 - 011 = 10
빨간색은 Borrow 입니다.
3) Binary Multiplication(2진수 곱셈)
<기본 연산>
0 * 0 = 0 (Product : 0)
0 * 1 = 0 (Product : 0)
1 * 0 = 0 (Product : 0)
1 * 1 = 0 (Product : 1)
일반적인 10진법 곱셈과 똑같습니다.
ex) 101 * 111 = 100011
ex) 1011 * 101 = 110111
4) Binary Division(2진수 나눗셈)
10진수 나눗셈과 똑같습니다.
ex) 111 / 10 = 11 ... 1
Compliments of Binary Numbers(2진수 보수)
<1's Compliment>
모든 2진수를 보수 처리합니다.
0을 1로 바꾸고 1을 0으로 바꿉니다.
ex) 10110010 -> 01001101
<2's Compliment>
1's Compliment 의 LSB에다가 1을 더해주는 것입니다.
ex) 10111101 -> 01000010(1's Compliment) -> 01000011(2's Compliment)
ex) 10110010 -> 01001101(1's Compliment) -> 01001110(2's Compliment)
Signed Numbers(신호 숫자)
1) Sign - Magnitude Form
MSB가 0이면 양수
1이면 음수
MSB 이외에 bit들은 The magnitude bit라고 합니다.
ex) 20(Decimal) = 00010100
-20(Decimal) = 10010100
빨간색 부분은 MSB 이고 파란색 부분은 magnitude 부분입니다.
여기서 Magnitude부분은 양수나 음수나 상관없이 MSB부분만 다르고 나머지 부분은 모두 같습니다.
2) 1's Compliment
양수는 sign-magnitude와 동일하고 음수는 양수에 1's Compliment 를 취해줍니다.
ex) 20 = 00010100
-20 = 11101011
3) 2's Compliment
양수는 sign-magnitude와 동일하고 음수는 양수에 2's Compliment를 취해줍니다.
ex) 20 = 00010100
-20 = 11101100
'디지털 회로개론' 카테고리의 다른 글
Lecture 9(Logic simplication & SOP & POS) (0) 2021.10.14 Lecture 8 (Boolean Algebara) (0) 2021.10.13 Lecture 7 (XOR, XNOR, SPP) (0) 2021.10.11 Lecture 5 , 6 (BCD, Gray, Error) code & Logic gate (0) 2021.10.10 Lecture 4 : 진수 변환 및 계산 (0) 2021.10.06