Стандарт IEEE для чисел з рухомою комою (IEEE 754) — технічний стандарт формату представлення чисел з рухомою комою, створений у 1985 році Інститутом інженерів з електротехніки та електроніки (IEEE). Стандарт вирішував багато проблем, виявлених у різноманітних реалізаціях з рухомою комою, що ускладнювало їхнє надійне та портативне використання. Багато апаратних пристроїв із рухомою комою використовують стандарт IEEE 754. Використовується як у програмних реалізаціях арифметичних дій, так і в багатьох апаратних (CPU та FPU) реалізаціях. Багато компіляторів мов програмування використовують цей стандарт для зберігання чисел та виконання математичних операцій.
Стандарт визначає формати і методи для арифметики з рухомою комою в комп'ютерних системах — стандартні та розширені функції для чисел одинарної, подвійної, розширеної і розширюваної точності — і рекомендує формати для обміну даними. Визначає виняткові ситуації та їхню стандартну обробку.
Цей стандарт визначає:
- Арифметичні формати: набори двійкових і десяткових даних з рухомою комою, які складаються з кінцевих чисел (у тому числі нулі зі знаком і денормалізовані числа), нескінченності та спеціальних значень «не число» (NaN).
- Формати обміну: кодування (бітові рядки), які можна використовувати для обміну даними з рухомою комою в ефективній та компактній формі.
- Правила округлення: властивості, які слід задовільняти при округленні чисел під час арифметики та перетворення.
- Операції: арифметичні та інші операції (наприклад, тригонометричні функції, додавання, віднімання, множення, ділення, поєднане множення-додавання, знаходження квадратного кореня, порівняння) над арифметичними форматами.
- Перетворення між цілими форматами і форматами з рухомою комою.
- Перетворення між різними форматами з рухомою комою.
- Перетворення між форматами з рухомою комою і зовнішніми поданнями — символьними послідовностями.
- Обробка винятків: ознаки виняткових умов (наприклад, ділення на нуль, переповнення тощо).
IEEE 754-2008, опублікований у серпні 2008 року, містить майже весь оригінальний стандарт IEEE 754-1985, а також стандарт IEEE 854-1987 для арифметики з рухомою крапкою, незалежну від кореня. Поточна версія, IEEE 754-2019, була опублікована в липні 2019 року. Це незначна редакція попередньої версії, яка включає в основному уточнення, виправлення дефектів і нові рекомендовані операції.
Коротка історія
Стандарт IEEE 754 був розроблений робочою групою Floating-Point Working Group комітету стандартів Інституту інженерів з електротехніки та електроніки IEEE у 1985 році. Провідну роль у розробці стандарту відіграв професор Каліфорнійського університету в Берклі Вільям Кехен, якого часто називають «батьком рухомої коми».
Після 2000 року робоча група зайнялася удосконаленням існуючого стандарту IEEE Std 754—1985 з метою усунення недоліків, об'єднання його зі стандартом IEEE Std 854—1987 та доповнення новими можливостями. Ця робота завершилася у 2008 році прийняттям нового стандарту IEEE Std 754—2008. Пізніше цей стандарт був затверджений Міжнародною організацією зі стандартизації як ISO/IEC/IEEE 60559:2011.
Основні терміни
Основний формат (basic format) — одне із п'яти представлень чисел з рухомою комою (три двійкових і два десяткових), визначених цим стандартом і призначених для арифметики.
Формат обміну (interchange format) — формат, що має визначене кодування фіксованої ширини, визначене цим стандартом.
Формат розширеної точності (extended precision format) — формат, який розширює основний формат, надаючи більшу точність і діапазон представлення чисел.
Формат розширюваної точності (extendable precision format) — формат з точністю і діапазоном, які визначаються користувачем.
Не число (not a number, NaN) — код, який не є чинним представленням жодного з чисел з рухомою комою. Буває двох типів «тихе не число» та «сигнальне не число».
Тихе не число (quiet NaN, qNaN) — є результатом операції, який не є числом з рухомою комою, хоча й не призводить до генерації виключень (наприклад, операції 0/0 або корінь з від'ємного числа дають NaN).
Сигнальне не число (signaling NaN, sNaN) — сигналізує про неприпустиме значення числа з рухомою комою шляхом генерації виключення. Зазвичай сигналізує про неініціалізовані змінні.
Зміщений порядок (biased exponent) — сума порядку і зміщення (константи), обраного так, щоб усі порядки були невід'ємними.
Хвіст мантиси (trailing significand) — дробова частина нормалізованої мантиси (для двійкового представлення — усі біти мантиси, крім найстаршого).
Формати
Стандарт визначає формати чисел з рухомою комою, які використовуються для представлення скінченної підмножини дійсних чисел. Формати характеризуються основою системи числення (radix або base), точністю (precision) і діапазоном значень порядку (range). Визначені конкретні кодування для двійкових і десяткових форматів.
Оновлений стандарт IEEE Std 754—2008 визначає два види форматів:
- формати обміну, визначені як бітові послідовності фіксованої довжини, що дозволяють здійснювати обмін даними між різними платформами (за умови, що вирішені питання порядку слідування байтів);
- формати розширеної і розширюваної точності, кодування яких точно не визначене, але може відповідати форматам обміну.
Формати обміну включають п'ять основних форматів фіксованого розміру:
- три двійкових формати з кодами довжиною 32, 64 і 128 біт (binary32, binary64, binary128);
- два десяткових формати з кодуваннями довжиною 64 і 128 біт (decimal64, decimal128).
Формати binary32 і binary64 відповідають форматам одинарної та подвійної точності стандарту IEEE 754—1985.
Параметри кодування чисел
Представлення даних з рухомою комою включає:
- трійку елементів (знак s, порядок e, мантиса m); в системі числення за основою b число з рухомою комою має вигляд (−1)s × m × be;
- дві нескінченності +∞, −∞;
- два типи не чисел qNaN (тихе), sNaN (сигнальне).
Кодування переводить дані з рухомою комою в бітову послідовність. Бітові послідовності NaN можуть містити ретроспективну діагностичну інформацію.
Числа з рухомою комою представляються в заданому форматі за допомогою наступних параметрів:
- основа b (2 або 10);
- кількість цифр мантиси (точність) p;
- максимальний порядок e = emax;
- мінімальний порядок e = emin.
Для всіх форматів справедливо emin = 1 − emax.
Кодування двійкових даних
Дані з рухомою комою у форматах обміну представляються k бітами за допомогою трьох полів:
- 1-бітовий знак S;
- w-бітовий зміщений порядок E = e + bias;
- t-бітовий (t = p−1) хвіст мантиси T = d1d2…dp−1; ведучий біт мантиси d0, неявно закодований у зміщеному порядку E.
MSB | LSB |
знак S | порядок E | хвіст мантиси T |
1 біт | w бітів | t = p — 1 бітів |
Для представлення у цьому форматі двійкове число спочатку нормалізується, тобто приводиться до такого вигляду, коли мантиса потрапляє в діапазон 1 ≤ m < 2. Таким чином ціла частина нормалізованої мантиси завжди дорівнює 1.
Знак додатних чисел кодується нулем, від'ємних одиницею. В поле порядку пишеться зміщений порядок — до порядку нормалізованого числа додається константа, таким чином всі порядки представляються додатними числами. В поле мантиси записується, т. зв. «хвіст» мантиси — всі дробові цифри мантиси (крім першої одиниці, яка є цілою частиною). Ціла частина мантиси в нормалізованому вигляді дорівнює 1 і не входить до коду числа. Це так звана прихована одиниця.
Приклад. 0,312510 = 0,01012 = 1,01 × 2−2. Для формату binary32 порядок зміщується на 127. E = –2 + 127 = 125 = 11111012. Мантиса записується без першої одиниці, тобто T = 01 (1,01 –1 = 0,01). Компоненти коду: знак — 0 (1 розряд), зміщений порядок — 01111101 (8 розрядів), хвіст мантиси 01000000000000000000000 (23 розряди).
Повний 32-бітний код 00111110101000000000000000000000. Кольором виділено поле порядку.
Зведена таблиця форматів IEEE Std 754—2008
Формат | Назва | Основа | Цифр мантиси | Десяткових цифр | Бітів порядку | Десяткове E max | Зміщення порядку | E min | E max | Примітки |
---|---|---|---|---|---|---|---|---|---|---|
binary16 | Half precision | 2 | 11 | 3.31 | 5 | 4.51 | 24−1 = 15 | −14 | +15 | не основний |
binary32 | Single precision | 2 | 24 | 7.22 | 8 | 38.23 | 27−1 = 127 | −126 | +127 | |
binary64 | Double precision | 2 | 53 | 15.95 | 11 | 307.95 | 210−1 = 1023 | −1022 | +1023 | |
binary128 | 2 | 113 | 34.02 | 15 | 4931.77 | 214−1 = 16383 | −16382 | +16383 | ||
decimal32 | 10 | 7 | 7 | 7.58 | 96 | 101 | −95 | +96 | не основний | |
decimal64 | 10 | 16 | 16 | 9.58 | 384 | 398 | −383 | +384 | ||
decimal128 | 10 | 34 | 34 | 13.58 | 6144 | 6176 | −6143 | +6144 |
Примітки
- IEEE Standard for Floating-Point Arithmetic [ 19 лютого 2017 у Wayback Machine.]. IEEE, 2008.
- IEEE 754, 2019
- Haigh, Thomas. (англ.). Архів оригіналу за 3 червня 2017. Процитовано 3 лютого 2017.
- Handbook of Floating-Point Arithmetic [ 16 лютого 2017 у Wayback Machine.]. Birkhäuser Boston, 2010.
- . Архів оригіналу за 4 березня 2016. Процитовано 3 лютого 2017.
Посилання
- IEEE Computer Society. IEEE Standard for Binary Floating-Point Arithmetic. — New York : IEEE, 1985. — 23 с. — .
- IEEE Computer Society. IEEE Standard for Floating-Point Arithmetic. — New York : IEEE, 2008. — 70 с. — .
- Muller Jean-Michel та ін. Handbook of Floating-Point Arithmetic. — Boston : Birkhäuser, 2010. — 572 с. — ISBN .
- Онлайн конвертор IEEE 754 [ 30 квітня 2017 у Wayback Machine.]
Це незавершена стаття про інформаційні технології. Ви можете проєкту, виправивши або дописавши її. |
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Standart IEEE dlya chisel z ruhomoyu komoyu IEEE 754 tehnichnij standart formatu predstavlennya chisel z ruhomoyu komoyu stvorenij u 1985 roci Institutom inzheneriv z elektrotehniki ta elektroniki IEEE Standart virishuvav bagato problem viyavlenih u riznomanitnih realizaciyah z ruhomoyu komoyu sho uskladnyuvalo yihnye nadijne ta portativne vikoristannya Bagato aparatnih pristroyiv iz ruhomoyu komoyu vikoristovuyut standart IEEE 754 Vikoristovuyetsya yak u programnih realizaciyah arifmetichnih dij tak i v bagatoh aparatnih CPU ta FPU realizaciyah Bagato kompilyatoriv mov programuvannya vikoristovuyut cej standart dlya zberigannya chisel ta vikonannya matematichnih operacij Standart viznachaye formati i metodi dlya arifmetiki z ruhomoyu komoyu v komp yuternih sistemah standartni ta rozshireni funkciyi dlya chisel odinarnoyi podvijnoyi rozshirenoyi i rozshiryuvanoyi tochnosti i rekomenduye formati dlya obminu danimi Viznachaye vinyatkovi situaciyi ta yihnyu standartnu obrobku Cej standart viznachaye Arifmetichni formati nabori dvijkovih i desyatkovih danih z ruhomoyu komoyu yaki skladayutsya z kincevih chisel u tomu chisli nuli zi znakom i denormalizovani chisla neskinchennosti ta specialnih znachen ne chislo NaN Formati obminu koduvannya bitovi ryadki yaki mozhna vikoristovuvati dlya obminu danimi z ruhomoyu komoyu v efektivnij ta kompaktnij formi Pravila okruglennya vlastivosti yaki slid zadovilnyati pri okruglenni chisel pid chas arifmetiki ta peretvorennya Operaciyi arifmetichni ta inshi operaciyi napriklad trigonometrichni funkciyi dodavannya vidnimannya mnozhennya dilennya poyednane mnozhennya dodavannya znahodzhennya kvadratnogo korenya porivnyannya nad arifmetichnimi formatami Peretvorennya mizh cilimi formatami i formatami z ruhomoyu komoyu Peretvorennya mizh riznimi formatami z ruhomoyu komoyu Peretvorennya mizh formatami z ruhomoyu komoyu i zovnishnimi podannyami simvolnimi poslidovnostyami Obrobka vinyatkiv oznaki vinyatkovih umov napriklad dilennya na nul perepovnennya tosho IEEE 754 2008 opublikovanij u serpni 2008 roku mistit majzhe ves originalnij standart IEEE 754 1985 a takozh standart IEEE 854 1987 dlya arifmetiki z ruhomoyu krapkoyu nezalezhnu vid korenya Potochna versiya IEEE 754 2019 bula opublikovana v lipni 2019 roku Ce neznachna redakciya poperednoyi versiyi yaka vklyuchaye v osnovnomu utochnennya vipravlennya defektiv i novi rekomendovani operaciyi Korotka istoriyaStandart IEEE 754 buv rozroblenij robochoyu grupoyu Floating Point Working Group komitetu standartiv Institutu inzheneriv z elektrotehniki ta elektroniki IEEE u 1985 roci Providnu rol u rozrobci standartu vidigrav profesor Kalifornijskogo universitetu v Berkli Vilyam Kehen yakogo chasto nazivayut batkom ruhomoyi komi Pislya 2000 roku robocha grupa zajnyalasya udoskonalennyam isnuyuchogo standartu IEEE Std 754 1985 z metoyu usunennya nedolikiv ob yednannya jogo zi standartom IEEE Std 854 1987 ta dopovnennya novimi mozhlivostyami Cya robota zavershilasya u 2008 roci prijnyattyam novogo standartu IEEE Std 754 2008 Piznishe cej standart buv zatverdzhenij Mizhnarodnoyu organizaciyeyu zi standartizaciyi yak ISO IEC IEEE 60559 2011 Osnovni terminiOsnovnij format basic format odne iz p yati predstavlen chisel z ruhomoyu komoyu tri dvijkovih i dva desyatkovih viznachenih cim standartom i priznachenih dlya arifmetiki Format obminu interchange format format sho maye viznachene koduvannya fiksovanoyi shirini viznachene cim standartom Format rozshirenoyi tochnosti extended precision format format yakij rozshiryuye osnovnij format nadayuchi bilshu tochnist i diapazon predstavlennya chisel Format rozshiryuvanoyi tochnosti extendable precision format format z tochnistyu i diapazonom yaki viznachayutsya koristuvachem Ne chislo not a number NaN kod yakij ne ye chinnim predstavlennyam zhodnogo z chisel z ruhomoyu komoyu Buvaye dvoh tipiv tihe ne chislo ta signalne ne chislo Tihe ne chislo quiet NaN qNaN ye rezultatom operaciyi yakij ne ye chislom z ruhomoyu komoyu hocha j ne prizvodit do generaciyi viklyuchen napriklad operaciyi 0 0 abo korin z vid yemnogo chisla dayut NaN Signalne ne chislo signaling NaN sNaN signalizuye pro nepripustime znachennya chisla z ruhomoyu komoyu shlyahom generaciyi viklyuchennya Zazvichaj signalizuye pro neinicializovani zminni Zmishenij poryadok biased exponent suma poryadku i zmishennya konstanti obranogo tak shob usi poryadki buli nevid yemnimi Hvist mantisi trailing significand drobova chastina normalizovanoyi mantisi dlya dvijkovogo predstavlennya usi biti mantisi krim najstarshogo FormatiStandart viznachaye formati chisel z ruhomoyu komoyu yaki vikoristovuyutsya dlya predstavlennya skinchennoyi pidmnozhini dijsnih chisel Formati harakterizuyutsya osnovoyu sistemi chislennya radix abo base tochnistyu precision i diapazonom znachen poryadku range Viznacheni konkretni koduvannya dlya dvijkovih i desyatkovih formativ Onovlenij standart IEEE Std 754 2008 viznachaye dva vidi formativ formati obminu viznacheni yak bitovi poslidovnosti fiksovanoyi dovzhini sho dozvolyayut zdijsnyuvati obmin danimi mizh riznimi platformami za umovi sho virisheni pitannya poryadku sliduvannya bajtiv formati rozshirenoyi i rozshiryuvanoyi tochnosti koduvannya yakih tochno ne viznachene ale mozhe vidpovidati formatam obminu Formati obminu vklyuchayut p yat osnovnih formativ fiksovanogo rozmiru tri dvijkovih formati z kodami dovzhinoyu 32 64 i 128 bit binary32 binary64 binary128 dva desyatkovih formati z koduvannyami dovzhinoyu 64 i 128 bit decimal64 decimal128 Formati binary32 i binary64 vidpovidayut formatam odinarnoyi ta podvijnoyi tochnosti standartu IEEE 754 1985 Parametri koduvannya chiselPredstavlennya danih z ruhomoyu komoyu vklyuchaye trijku elementiv znak s poryadok e mantisa m v sistemi chislennya za osnovoyu b chislo z ruhomoyu komoyu maye viglyad 1 s m be dvi neskinchennosti dva tipi ne chisel qNaN tihe sNaN signalne Koduvannya perevodit dani z ruhomoyu komoyu v bitovu poslidovnist Bitovi poslidovnosti NaN mozhut mistiti retrospektivnu diagnostichnu informaciyu Chisla z ruhomoyu komoyu predstavlyayutsya v zadanomu formati za dopomogoyu nastupnih parametriv osnova b 2 abo 10 kilkist cifr mantisi tochnist p maksimalnij poryadok e emax minimalnij poryadok e emin Dlya vsih formativ spravedlivo emin 1 emax Koduvannya dvijkovih danihDani z ruhomoyu komoyu u formatah obminu predstavlyayutsya k bitami za dopomogoyu troh poliv 1 bitovij znak S w bitovij zmishenij poryadok E e bias t bitovij t p 1 hvist mantisi T d1d2 dp 1 veduchij bit mantisi d0 neyavno zakodovanij u zmishenomu poryadku E MSB LSB znak S poryadok E hvist mantisi T 1 bit w bitiv t p 1 bitiv Dlya predstavlennya u comu formati dvijkove chislo spochatku normalizuyetsya tobto privoditsya do takogo viglyadu koli mantisa potraplyaye v diapazon 1 m lt 2 Takim chinom cila chastina normalizovanoyi mantisi zavzhdi dorivnyuye 1 Znak dodatnih chisel koduyetsya nulem vid yemnih odiniceyu V pole poryadku pishetsya zmishenij poryadok do poryadku normalizovanogo chisla dodayetsya konstanta takim chinom vsi poryadki predstavlyayutsya dodatnimi chislami V pole mantisi zapisuyetsya t zv hvist mantisi vsi drobovi cifri mantisi krim pershoyi odinici yaka ye ciloyu chastinoyu Cila chastina mantisi v normalizovanomu viglyadi dorivnyuye 1 i ne vhodit do kodu chisla Ce tak zvana prihovana odinicya Priklad 0 312510 0 01012 1 01 2 2 Dlya formatu binary32 poryadok zmishuyetsya na 127 E 2 127 125 11111012 Mantisa zapisuyetsya bez pershoyi odinici tobto T 01 1 01 1 0 01 Komponenti kodu znak 0 1 rozryad zmishenij poryadok 01111101 8 rozryadiv hvist mantisi 01000000000000000000000 23 rozryadi Povnij 32 bitnij kod 001111101 01000000000000000000000 Kolorom vidileno pole poryadku Zvedena tablicya formativ IEEE Std 754 2008Format Nazva Osnova Cifr mantisi Desyatkovih cifr Bitiv poryadku Desyatkove E max Zmishennya poryadku E min E max Primitki binary16 Half precision 2 11 3 31 5 4 51 24 1 15 14 15 ne osnovnij binary32 Single precision 2 24 7 22 8 38 23 27 1 127 126 127 binary64 Double precision 2 53 15 95 11 307 95 210 1 1023 1022 1023 binary128 2 113 34 02 15 4931 77 214 1 16383 16382 16383 decimal32 10 7 7 7 58 96 101 95 96 ne osnovnij decimal64 10 16 16 9 58 384 398 383 384 decimal128 10 34 34 13 58 6144 6176 6143 6144PrimitkiIEEE Standard for Floating Point Arithmetic 19 lyutogo 2017 u Wayback Machine IEEE 2008 IEEE 754 2019 Haigh Thomas angl Arhiv originalu za 3 chervnya 2017 Procitovano 3 lyutogo 2017 Handbook of Floating Point Arithmetic 16 lyutogo 2017 u Wayback Machine Birkhauser Boston 2010 Arhiv originalu za 4 bereznya 2016 Procitovano 3 lyutogo 2017 PosilannyaIEEE Computer Society IEEE Standard for Binary Floating Point Arithmetic New York IEEE 1985 23 s ISBN 0 7381 1165 1 IEEE Computer Society IEEE Standard for Floating Point Arithmetic New York IEEE 2008 70 s ISBN 978 0 7381 5752 8 Muller Jean Michel ta in Handbook of Floating Point Arithmetic Boston Birkhauser 2010 572 s ISBN ISBN 978 0 8176 4705 6 Onlajn konvertor IEEE 754 30 kvitnya 2017 u Wayback Machine Ce nezavershena stattya pro informacijni tehnologiyi Vi mozhete dopomogti proyektu vipravivshi abo dopisavshi yiyi