티스토리 뷰

정리하기/개발 기본

숫자 표현 방식

내가송 2017. 6. 26. 16:14
반응형

부동 소수점 

실수를 표현하는 방식


ex. 12.34 = 12.34 * Math.pow(10, 0) = 1.234 * Math.pow(10, 1) = 0.1234 * Math.pow(10, 2) = ...


실수 12.34를 표현할 수 있는 방법이 너무 다양.

하여 가수부 정수 1자리로 표현하도록 고정한 방식.


컴퓨터에서 부동 소수점  표현 방식

 1) 부호비트 + 지수 비트 + 유효 자리로 구성되어 있다.

  - 부호 비트 : 양수면 0 음수면 1

  - 지수 비트 : 정규화 변환 시 n승 이동 시의 n 값.

  - 유효 자리 : 소수점 이하 


 2) 32bit(단정도)인가 64bit(배정도)인가에 따라 각 비트의 수가 달라짐.

  - 32bit : 부호비트 (1 bit) + 지수비트(8 bit) + 유효자리(23bit)

  - 64bit : 부호비트 (1 bit) + 지수 비트 (11 bit) + 유효 자리 (52 bit)

 

 3) bias (바이어스) : 음의 지수를 저장하지 못하도록 하는데 사용되는 값.

   bias = Math.pow(2, n-1) - 1 (n : 지수 비트 수)


예시(32bit로 계산)


15.357 


2진수 변환 => 15 = 1111, 0.357 = 010110110110 ...

각 값을 합치면 => 1111.010110110110...


정규화 => 1.111010110110110... * Math.pow(2, 3)


바이어스 계산 => Math.pow(2, 8) - 1 = 127 (32bit에서 지수 비트는 8비트이니깐.)

지수 + 바이어스 => 3 + 127 = 130


부호 연산 => 0

지수 비트의 2진수 변환 => 1000 0010

유효 자리 => 0101 1011 0110 ...

 

결과 => 0 1000 0010 1110 1011 0110 ...


자바스크립트에서는?

자바스크립트의 숫자에는 정수 실수 구분이 없다. 

IEEE754 형식에 따라 js의 숫자는 64bit의 실수로 표현. 

부동 소수점 표현 방식에 따라 숫자의 범위는 -(Math.pow(2, 53) - 1 ) ~ (Math.pow(2, 53) - 1)



반응형

'정리하기 > 개발 기본' 카테고리의 다른 글

직렬화  (0) 2024.01.17
ACL  (0) 2018.08.10
CDN 서버  (0) 2017.12.18
컴파일 vs 빌드  (0) 2017.07.23
라이브러리 vs 프레임워크  (0) 2017.06.23
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함