숫자형과 메모리
- 메모리는 `비트`로 이루어져 있음
- 데이터는 2진법으로 변환된 후 메모리에 저장됨
- 정수: 2진법으로 변환된 후 메모리에 저장. ex) 7 = 0b0111
- 소수: 소수점 아래의 각 숫자를 2로 나눈 나머지를 사용하여 2진수로 변환된 후 메모리에 저장 ex) 0.625 = 0b0.101
- 실수(float)를 나타내는 32칸 비트 중 첫번째 칸에 부호 저장됨. ex) +(0) / -(1)
▼직관적 학습을 돕는 사이트
https://www.binaryconvert.com/convert_float.html
숫자형의 문제
0.1 + 0.2 === 0.3 // false
Number.MAX_SAFE_INTEGER + 1 === Number.MAX_SAFE_INTEGER + 2 // true
0.9999999... === 1 // true
무한 소수, 2진법으로 정확히 변환되지 않는 소수 등 현재 컴퓨터가 숫자를 처리하는 방식으로는 모든 실수를 완벽히 표현할 수 없음. 그래서 이러한 숫자형의 연산시에는 근사치를 이용함. 이는 개발자가 예상하지 못한 결과를 보일 수 있어 숫자형을 다룰 때 주의가 필요함.
'STORAGE > JavaScript|TypeScript' 카테고리의 다른 글
% 연산의 성질 (0) | 2023.05.16 |
---|---|
clientWidth, offsetWidth, scrollWidth, getBoundingClientRect 메서드 (0) | 2023.05.14 |
keydown, keyup, keypress 이벤트 (0) | 2023.05.13 |
댓글