ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Lecture 3(10진수, 2진수, Compliment)
    디지털 회로개론 2021. 10. 5. 23:59
    728x90

    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

Designed by Tistory.