이진 정수 소수점
Binary integer decimal| 부동 소수점 형식 |
|---|
| IEEE 754 |
| 기타 |
IEEE 754-2008 표준은 의미와 지수(및 NaNs의 페이로드)를 이진 인코딩과 십진 인코딩이라고 하는 두 가지 방법으로 인코딩할 수 있는 십진 부동 소수점 숫자 형식을 포함한다.[1]
두 형식 모두 숫자를 부호 비트 s, 지수 Q(q와minmax q 사이), p-자리 의의와 c(0과 10-1p 사이)로 나눈다.인코딩된 값은 (-1)×s10q×c이다.두 형식에서 모두 가능한 값의 범위는 동일하지만, 의미와 c가 어떻게 표현되는지는 다르다.10진수 인코딩에서는 p 소수점 시리즈로 인코딩된다(조밀하게 포장된 소수점(DPD) 인코딩 사용).이를 통해 십진법으로의 변환은 효율적이지만 처리하려면 전문적 십진법 ALU가 필요하다.이진 정수 소수점(BID) 인코딩에서는 이진수로 인코딩된다.
포맷
210 = 1024가 103 = 1000을 약간 넘는다는 사실을 이용하면 3n자리의 소수 자릿수를 10n 이진 비트로 효율적으로 포장할 수 있다.그러나 IEEE 형식은 3n+1자리의 의의를 가지며, 일반적으로 10n+4 이진 비트가 필요하다.
추가 4비트의 16개 가능한 값 중 10개만 필요하기 때문에 이것은 효율적이지 않을 것이다.보다 효율적인 인코딩은 지수 범위가 3×2k 형태여서 지수부터 시작하지 않는다는 사실을 사용하여 설계할 수 있다.11. Decimal32 인코딩(3*2+1 소수 자릿수의 의미)을 예로 사용(예:e지수를 나타낸다.m맨티사, 즉 의의와 같은 것:
- 의의와 시작은
0mmm, 선행 0비트를 생략하면 그 의미가 23비트에 들어갈 수 있다.
s 00eeee (0)mmmmmmmmmmmmmmmmmmmmmmmmmm s 01mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmms s 10mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
- 의의와 시작은
100m선행 100비트를 생략하면 그 의미가 21비트에 들어갈 수 있다.지수는 2비트에 걸쳐 이동하며,11비트 쌍은 이 양식이 사용 중임을 보여준다.
s 1100mmeee (100)mmmmmmmmmmmmmmmmmmmmmmmmmmmmm s 1101mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm s 1110mmeee (100)mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm
- Infinity, silent NaN 및 신호 NaN은 로부터 시작하는 인코딩을 사용한다.
s 1111:
s 11110 xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
괄호 안에 표시된 비트는 암묵적인 것으로서, 십진법32 인코딩의 32비트에 포함되지 않고, 부호 비트 뒤의 두 비트에 의해 암묵적인 것이다.
십진법64와 십진법128 인코딩은 지수와 의의는 더 크지만 비슷한 방식으로 작동한다.
십진법128 인코딩의 경우 113비트의 의의는 실제로 소수점 34자리를 인코딩할 정도로 충분하며, 두 번째 형태는 실제로 절대 필요하지 않다.
코호트
소수점 부동소수 번호는 여러 가지 방법으로 인코딩할 수 있으며, 다른 방법은 서로 다른 정밀도를 나타낸다. 예를 들어 100.0은 1000×10으로−1 인코딩되는 반면 100.00은 10000×10으로−2 인코딩된다.동일한 숫자 값의 가능한 인코딩 집합을 표준에서 코호트라고 한다.계산 결과가 부정확할 경우, 필요한 지수와 함께 의미에 저장될 수 있는 가장 큰 정수의 코호트 멤버를 선택하여 가장 많은 양의 유의한 데이터를 보존한다.
범위
제안된 IEEE 754r 표준은 10-1 형식의 의미와n 숫자의 범위를 제한한다. 여기서 n은 십진 반올림이 올바르게 적용되도록 사용 가능한 비트에 저장할 수 있는 전체 십진수의 수입니다.
| 32비트 | 64비트 | 128비트 | |
|---|---|---|---|
| 저장 비트 | 32 | 64 | 128 |
| 후행 의미 및 비트 | 20 | 50 | 110 |
| 의의와 비트 | 23/24 | 53/54 | 113 |
| 의의와 숫자 | 7 | 16 | 34 |
| 조합 비트 | 11 | 13 | 17 |
| 지수 비트 | 8 | 10 | 14 |
| 바이어스 | 101 | 398 | 6176 |
| 스탠더드 에맥스 | 96 | 384 | 6144 |
| 스탠더드 에미넴 | −95 | −383 | −6143 |
퍼포먼스
이진 인코딩은 문자열(ASCII, 유니코드 등)과 BCD와 같은 십진수 인코딩 데이터로의 변환에 있어 본질적으로 효율성이 떨어진다.따라서 이진 인코딩은 데이터가 십진수보다는 이진수일 때만 가장 잘 선택된다.IBM은 검증되지 않은 일부 성능 데이터를 발표했다.[2]
참고 항목
참조
- ^ "DRAFT Standard for Floating Point Arithmetic P754" (PDF). 2006-10-04. Retrieved 2007-07-01.[영구적 데드링크]
- ^ "Decimal Library Performance - 1.01".
추가 읽기
- Savard, John J. G. (2018) [2007]. "The Decimal Floating-Point Standard". quadibloc. Archived from the original on 2018-07-03. Retrieved 2018-07-16.