기어가더라도 제대로

2-1. 디지털 연산(산술연산) (만화로 쉽게 배우는 CPU 中) 본문

CS

2-1. 디지털 연산(산술연산) (만화로 쉽게 배우는 CPU 中)

Damagucci-juice 2022. 3. 13. 11:03

'0'과 '1'은 상반되는 상태

컴퓨터 내부에서 0과 1의 기준

H : 전압이 어떤 기준보다 높다(High) -> 1
L : 전압이 어떤 기준보다 낮다(Low) -> 0

  • 시스템에 따라 H -> 0, L -> 1로 놓는 설계가 있을 수도 있다.

계산은 bit를 기준으로!

bit : 2진수의 1자리(0 혹은 1)를 1비트(bit)라고 부른다.

예시

  • 9(10) -> 1001(2)

2진수에 의한 숫자 표현

  • 10진수

356 = (3 * 10^2) + (5 * 10^1) + (6 * 10^0)

  • 2진수

1011 = (1 * 2^3) + (0 * 2^2) + (1 * 2^1) + (1* 2^0)

  • 소수점 이하의 표현
0.14 = 0 \* 10^0 + 1\* 10^-1 + 4 \* 10^-2

0.14 = 0 \* 2^0 + 0 \* 2^-1 + 0 \* 2^-2 + 1 \* 2^-3 + 0 \* 2^-4 + 0 \* 2^-5 + 0 \* 2^-6 + 1 \* 2^-7 + ...  
              1         0.5        0.25       0.125      0.0625     0.03125    0.015625   0.0078125

어떠한 진수도 소숫점 아래의 수를 표현할 때 100% 정확성을 표시하기는 어렵다.

고정 소수점과 부동 소수점

아주 작은 값이나 아주 큰 값을 계산할 때는 부동 소숫점이 아주 편리하다.

1억 = 100,000,000 = 10^8

이러한 표현을 지수 형식이라 하고, 10^n의 n 부분을 지수라고 한다.

고정 소수점 부동 소수점
123. 1.23 * 10^2
1230000. 1.23 * 10^6
0.00000123 1.23*10^-6

고정 소수점 방식에서는 큰 값이나, 작은 값을 표현할 때 자릿수가 늘어나야 하는 반면
부동 소수점의 경우 지수의 값을 바꾸기만 하면 된다. 그래서 편리!

실제 컴퓨터는...?

  • 컴퓨터에서의 부동 소수점 표현의 예1.69 * 2^n가수부 지수부
    규칙 : 가수부의 수는 1 이상 2 미만의 숫자로 표현

2진수에 의한 덧셈과 뺄셈

  • 덧셈
    1 + 1 = 10

보수와 뺼셈

10진수에서 15를 뺀다는건 -15를 더한다와 같다. 컴퓨터는 덧셈 밖에 할 줄 모르는 바보이기 때문에 덧셈으로 뺄셈을 해야한다(?)
이게 무슨말이냐면 수로 이해하면 쉽다

A 식 B 식
15 15
(-15) + 85
0 100

계산 결과에서 하위 2자리만 비교하면 A식은 '0'이고 B 식은 '00'이다.
그래서 같은 값이다...

그럼 1은 조상님이 가져가는가? 결과적으로 그렇다.

자리넘침 이라고 표현하는데 2자리 계산을 상정하고 계산한거기 때문에 3자리값인 1은 모른다. 무시해도 좋다.

이를 다시말하면

보수 : 원래 수에 더하면 자릿수가 올라가는 수(자리넘침이 발생하는 수)

실질적으로 이 보수를 음수처럼 컴퓨터는 사용을 한다.

2진수에서 뺄샘


1010 1000  
0101 1000

-   ---

    1 0000 0000


여기서도 앞에 1은 무시한다. 8자리 계산이였기 때문에 무시한다.

### 보수를 구하는 방법

step 1 : 원래수의 각자리를 모두 뒤바꾼다  
step 2 : 그 뒤바꾼 수에 1을 더한다
1010 1000 (뒤바꿈) 0101 0111 0101 0111 + 1 --------- 0101 1000 (보수) ```
Comments