Число одинарної точності
Число одинарної точності (англ. Single precision,Single) — широко поширений комп'ютер ний формат представлення дійсних чисел, що займає в пам'яті 32 біт а (4 байт а). Як правило, під ним розуміють формат числа з плаваючою комою стандарту IEEE 754.
Числа одинарної точності з плаваючою комою забезпечують відносну точність 7-8 десяткових цифр в діапазоні від 10−38 до приблизно 1038.
У сучасних комп'ютерах обчислення з числами з плаваючою комою підтримуються апаратним співпроцесором (FPU - Floating Point Unit). Однак у багатьох обчислювальних архітектурах немає апаратної підтримки чисел з плаваючою комою і тоді робота з ними здійснюється програмно.
| Знак | ||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Експонента | Мантиса | |||||||||||||||||||||||||||||||
| 0 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | = 0,15625 |
| 31 | 24 | 23 | 16 | 15 | 8 | 7 | 0 | |||||||||||||||||||||||||
Для обчислення показника ступеня з восьмирозрядного поля експоненти віднімається зсув експоненти рівне 127 10=7F16=011111112, (тобто, 01111100 2-011111112=12410-12710=-310). Так як в нормалізованої двійковій мантиси ціла частина завжди дорівнює одиниці, то в поле мантиси записується тільки її дробова частина. Для обчислення мантиси до одиниці додається дробова частина мантиси з 23-х розрядного поля дробової частини мантиси 1,010000000000000000000002. Число дорівнює добутку мантиси зі знаком на двійку в ступені експоненти =1,012*210-310 = 1012*210-510 = 510*210-510 = 0,1562510.
Зміст |
Загальний шаблон для побітового доступу [ред.]
union { float fl; DWORD dw; } F; int s = (f.dw >> 31)? -1: 1; int e = (f.dw >> 23) & 0xff; int m = (e == 0)? (F.dw & 0x7fffff) << 1: (f.dw & 0x7fffff) | 0x800000; e = (e - 127);
Результуюча формула розрахунку буде s * m * 2 ^ e.
Приклади чисел одинарної точності [ред.]
Ці приклади представлені в шістнадцятковому вигляді чисел з плаваючою комою. Вони включають знаковий біт, експоненту і мантиссу.
3f80 0000 = 1 c000 0000 = -2 7f7f ffff ≈ 3.4028234 × 10 38 (Максимальна одинарної точності) 0000 0000 = 0 8000 0000 = -0 7f80 0000 = infinity ff80 0000 =-infinity 3eaa aaab ≈ 1/3
За замовчуванням, 1/3 округляється вгору, на відміну від чисел подвійної точності.
