ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [컴퓨터 시스템] 3일차
    교육 2019. 11. 12. 01:50

    - 아래 내용은 '컴퓨터 시스템(3판)' 책을 바탕으로 몰랐던 내용이나, 알고 있더라도 머릿속에 좀 더 각인시키면 좋을 것 같은 내용 위주로 기록했다. 

    - 자세한 정리보단, 핵심만 남기는 것을 선호하는 편이라 친절하지 않을 수 있다.

    - 깊이 있는 학습을 원한다면 별도로 책(컴퓨터 시스템(3판))을 구입하여 학습하길 권한다.

    - 스스로 언제든 틀릴 수 있다는 사실을 인식하고 있기 때문에, 피드백은 언제나 환영한다. 

    - 목표는 기본기 튼튼한 프로그래머가 되기 위함이다.

     

     

     

    2진수 표현


    - 컴퓨터는 숫자를 저장할 때 기본적으로 2진수를 사용
    - 하지만, 263.3 같이 2진수로 표현하지 못하는 실수가 존재함

         ex) 263 => 100000111
               0.3 => 0.01001100110011...... 무한 반복

    - 이럴 경우, 컴퓨터에서는 표현할 수 있는 가장 근사치의 값을 저장함

    - 이 근사치의 값을 저장하는 방법에는 두 가지가 있음 (고정 소수점 표현, 부동 소수점 표현)

     

    컴퓨터가 실수를 표현하는 방식

    고정 소수점 표현


    - 정수를 표현하는 비트 수와 소수를 표현하는 비트 수를 미리 정해 놓고 해당 비트만큼만 사용해서 숫자를 표현하는 방식
    - 정수를 표현하는 비트 수를 늘리면 큰 숫자를 표현할 수 있지만 정밀한 숫자를 표현하지 못함

    - 소수를 표현하는 비트 수를 늘리면 정밀한 숫자를 표현할 수는 있지만 큰 숫자를 표현하지 못함

    - 이런 문제를 해결하기 위해 소수점을 고정하지 않는 부동 소수점(floating point)이 등장함

     

     

    부동 소수점 표현


    - 대부분의 시스템에서는 부동 소수점 방식으로 실수를 표현함

    - 현재 사용되고 있는 부동 소수점 방식은 대부분 IEEE 754 표준을 따름 

     

     

    ex) 263.3을 2진수 부동 소수점 표현 방식으로 변환

     

    100000111.010011001100110...로 표현되던 것을 맨 앞의 1 바로 뒤로 소수점을 옮겨 다음과 같이 표현하도록 변환

    1.00000111010011001100110... * 2^8(2의 8승)

    - 부호는 노란색 부분에 기록 ex. 양수(0), 음수(1)

    - 2^8의 8을 지수라고 하고 하늘색 부분에 기록 (IEEE 754 표현 방식에서는 127 + 지수를 기록)
    - 소수점 이후 숫자열 전체를 가수
    라고 하고 연두색 부분에 기록

     

    이 방식에 따라서 263.3을 기록하면

    부호 비트(1 bit) : 0 (양수)
    지수 비트(8 bit) : 10000111 (127 + 8 = 135)
    가수 비트(23 bit) : 00000111010011001100110

    - 하지만, 이렇게 해도 0.010011001100110은 정확히 0.3을 나타낼 수 없음 (
    10진수로 나타내 보면 0.29998779296875)

    - (주의) 즉, 부동 소수점 방식에 의한 실수 표현은 항상 오차가 존재한다

    - 컴퓨터에서 실수를 표현하는 방법은 정확한 표현이 아닌 언제나 근사치를 표현하는 것

     

     

    '교육' 카테고리의 다른 글

    [컴퓨터 시스템] 2일차  (0) 2019.10.15
    [Node.js] 13일차  (0) 2019.10.09
    [컴퓨터 시스템] 1일차  (0) 2019.10.07
    [Node.js] 11일차  (1) 2019.09.27
    [Node.js] 10일차  (0) 2019.09.25

    댓글

Designed by Tistory.