티스토리 뷰
부동 소수점
실수를 표현하는 방식
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)
- Total
- Today
- Yesterday
- vuex
- common.js
- awe-some
- vue
- awesome-vue
- js
- angular
- eventbus
- #가상머신
- nodejs
- MarionetteJS
- backbone.js
- node.js
- browserify
- framework
- git tag
- Typescript
- nextTick
- 뉴욕
- vue.js
- mocha.js
- 함수
- Android
- 외부모듈
- AndroidContext
- 자바스크립트
- marionetts.js
- node
- 원하는것이있다면끝까지버텨라
- javascript
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |