Число с фиксированной запятой

Число с фиксированной запятой (англ. fixed-point number) — формат представления вещественного числа в памяти ЭВМ в виде целого числа. При этом само число x и его целочисленное представление x′ связаны формулой

,

где z — цена (вес) младшего разряда.

В случае, если , для удобства расчётов его делают дольным единице, чтобы целые числа кодировались без погрешности. Другими словами, выбирают целое число u (машинную единицу) и принимают . В случае, если , его делают целым.

Если не требуется, чтобы какие-либо конкретные дробные числа входили в разрядную сетку, программисты обычно выбирают это позволяет использовать в операциях умножения и деления битовые сдвиги. Про такую арифметику говорят: «f битов на дробную часть, i=n−f — на целую» и обозначают как «i,f», «i.f» или «Qi.f» (см. числовой формат Q[англ.]). Например: арифметика 8,24 отводит на целую часть 8 бит и 24 — на дробную. Соответственно, она способна хранить числа от −128 до 128−z с ценой (весом) младшего разряда .

Для угловых величин зачастую делают (особенно если тригонометрические функции вычисляются по таблице).

Название

Название «фиксированная запятая» (или «фиксированная точка»; далее — ФЗ) произошло из-за простой метафоры: между двумя заранее определёнными разрядами ставится запятая для превращения целого числа в дробное. Например, целое число 1234 после вставки запятой превращается в дробное 12,34.

В Великобритании, США и других странах вместо запятой для отделения целой части числа от дробной используется точка, поэтому понятия «фиксированная точка» и «фиксированная запятая» эквивалентны.

Применение

Арифметику с фиксированной запятой часто применяют в тех областях, когда использование чисел с плавающей запятой затратно или невозможно ввиду используемой архитектуры процессоров. Например, видеосопроцессоры приставок PlayStation (Sony), Saturn (Sega), Game Boy Advance (Nintendo), Nintendo DS, GP2X используют арифметику с фиксированной запятой для того, чтобы увеличить пропускную способность на архитектурах без FPU. Стандарт OpenGL ES 1.x включает поддержку чисел с фиксированной запятой, так как он создан для встраиваемых систем, у которых часто нет FPU.

Кроме того, арифметику с фиксированной запятой используют для обеспечения минимальной поддержки дробных чисел на целочисленном процессоре: микроконтроллера, мобильного телефона, приставок вплоть до Playstation и т. д. Если не решаются некорректные задачи и СЛАУ высокого порядка, фиксированной запятой зачастую достаточно — важно только подобрать подходящую цену (вес) младшего разряда для каждой из величин.

Числа с фиксированной запятой используют там, где не нужна высокая точность, но требуется производительность. В большинстве современных процессоров ФЗ аппаратно не реализована, но даже программная ФЗ очень быстра — поэтому она применяется в разного рода игровых движках, растеризаторах[1] и т. д. Например, движок Doom для измерения расстояний использует арифметику Q16.16, для углов — 360°=232.

Также фиксированную запятую удобно использовать для записи чисел, которые по своей природе имеют постоянную абсолютную погрешность: координаты в программах вёрстки, отметки времени, денежные суммы. Например, и сдачу в супермаркете, и налоги в стране вычисляют с точностью до сотой доли. Файлы метрики шрифтов TeX используют 32-битный знаковый тип с фиксированной запятой Q12.20, библиотека растеризации шрифтов FreeType — Q26.6[2]. На подобные величины можно отдать и плавающую запятую с достаточным количеством знаков мантиссы — но тогда поле порядка становится излишним. Кроме того, фиксированная запятая ведёт себя абсолютно предсказуемо — при подсчёте денег это позволяет наладить разные виды округления, а в играх — наиболее простой способ реализовать многопользовательский режим и запись повторов.

Недостатки

Недостаток фиксированной запятой — очень узкий диапазон чисел, с угрозой переполнения на одном конце диапазона и потерей точности вычислений на другом. В сложных вычислениях приходится постоянно вписываться в этот диапазон с помощью перемасштабирования — использования разных форматов фиксированной запятой для величин времени, координаты, скорости… Эта проблема и привела к изобретению плавающей запятой. Например: если нужна точность в 3 значащих цифры, 4-байтовая фиксированная запятая даёт диапазон в 6 порядков (то есть, разница приблизительно 106 между самым большим и самым маленьким числом), 4-байтовое число одинарной точности — в 70 порядков.

Реализации

Немногие языки программирования предоставляют встроенную поддержку чисел с фиксированной запятой, поскольку для большинства применений двоичное или десятичное представление чисел с плавающей запятой проще и достаточно точно. Числа с плавающей запятой проще из-за их большего динамического диапазона, для них не нужно предварительно задавать количество цифр после запятой. Если же потребуется арифметика с фиксированной запятой, она может быть реализована программистом на используемом им языке.

Числа с фиксированной запятой в формате BCD часто используются для хранения денежных величин — неточности от форматов с плавающей запятой недопустимы, а простеньким микроконтроллерам платёжных терминалов BCD предпочтительнее двоичного представления. Исторически числа с фиксированной точкой часто использовались для десятичных типов данных, например в языках PL/I и COBOL. Язык программирования Ada 2012 включает встроенную поддержку чисел с фиксированной запятой (как двоичных, так и десятичных) и чисел с плавающей запятой. JOVIAL и Coral 66 предоставляли оба формата.

Стандарт ISO/IEC TR 18037 добавляет поддержку чисел с фиксированной запятой в язык C. Разработчики компилятора GCC уже реализовали[3] эту поддержку.

Практически все СУБД и язык SQL поддерживают арифметику с фиксированной запятой и хранение таких данных. Например, PostgreSQL имеет специальный численный тип для точного хранения чисел до 1000 цифр.

Операции

  • Сложение и вычитание чисел с фиксированной запятой — это обычные сложение и вычитание: .
  • Аналогично с умножением и делением на целочисленную константу: .
  • Умножение и деление отличаются от целочисленных на константу.
    ,
    где [ ] — операция округления до целого. В частности, если в дробной части f бит:
    .
  • Для других операций, помимо обычных рядов Тейлора и итерационных методов, широко применяются вычисления по таблице.

Если операнды и результат имеют разную цену (вес) младшего разряда, формулы более сложны — но иногда такое приходится делать из-за большой разницы в порядке величин.

Для перевода чисел из формата с фиксированной запятой в человекочитаемый формат и наоборот применяются обычные правила перевода дробных чисел из одной позиционной системы счисления в другую.

Примечания

  1. Числа с фиксированной точкой. Применение в компьютерной графике. Дата обращения: 4 ноября 2007. Архивировано 24 ноября 2007 года.
  2. VI. FreeType outlines. Дата обращения: 23 марта 2020. Архивировано 11 июля 2020 года.
  3. Числа с фиксированной запятой Архивная копия от 29 мая 2015 на Wayback Machine. Документация GCC

Read other articles:

Seorang dokter hewan mencabut jahitan dari wajah kucing setelah pembedahan minorPekerjaanNamaDokter hewanSinonimMedik veterinerJenis pekerjaanProfesiSektor kegiatanKesehatan hewan, kesejahteraan hewan, kesehatan masyarakat veterinerPenggambaranKompetensiDiagnosis, penanganan, dan pencegahan gangguan kesehatan pada hewanKualifikasi pendidikanPendidikan profesi dokter hewanBidang pekerjaanPraktisi, konsultan, akademisi, pemerintahan, otoritas veterinerPekerjaan terkaitDokter, paramedis hewan Do...

 

Josh RadnorRadnor di 2013 Sundance Film Festival, UtahLahirJoshua Thomas Radnor29 Juli 1974 (umur 49)Columbus, Ohio, A.S.PekerjaanAktor, sutradara, produser, penulis naskahTahun aktif1998–sekarangTinggi181 cm (5 ft 11 in) Joshua Thomas Josh Radnor (lahir 29 Juli 1974) adalah aktor, sutradara, produser, dan penulis naskah Amerika Serikat. Ia lebih dikenal sebagai pemeran tokoh utama Ted Mosby di sitkom CBS pemenang Emmy Award, How I Met Your Mother. Radnor mengawali...

 

Mensur Mujdža Informasi pribadiTanggal lahir 28 Maret 1984 (umur 39)Tempat lahir Zagreb, SFR YugoslaviaTinggi 1,84 m (6 ft 1⁄2 in)Posisi bermain Sayap kananInformasi klubKlub saat ini SC FreiburgNomor 24Karier junior1994–2004 ZagrebKarier senior*Tahun Tim Tampil (Gol)2004–2009 Zagreb 136 (5)2009– SC Freiburg 70 (1)Tim nasional‡2004–2006 Kroasia U-21 9 (2)2010– Bosnia-Herzegovina 18 (0) * Penampilan dan gol di klub senior hanya dihitung dari liga domesti...

Fakultas Ilmu Budaya Universitas Jenderal SoedirmanFIB UnsoedLambang Universitas Jenderal SoedirmanNama sebelumnyaJurusan Ilmu Budaya Fakultas Ilmu Sosial dan Ilmu PolitikDidirikan2014Lembaga indukUniversitas Jenderal Soedirman DekanDr. Ely Triasih Rahayu, S.S., M.Hum.AlamatFakultas Ilmu BudayaJl. Dr. Soeparno No. 60, Kampus Karangwangkal Unsoed, Purwokerto, Jawa Tengah, Indonesia KampusUrbanWarna  PutihSitus webhttp://www.fib.unsoed.ac.id Fakultas Ilmu Budaya Universitas Jenderal Soedir...

 

Stasiun Tokumitsu (徳満駅 Tokumitsu-eki) adalah stasiun kereta yang terletak di Toyotomi, Distrik Teshio, Hokkaido, Jepang. Stasiun Tokumitsu徳満駅Bangunan Stasiun TokumitsuLokasiTokumitsu, Toyotomi, HokkaidoJepangKoordinat45°8′45″N 141°45′3.7″E / 45.14583°N 141.751028°E / 45.14583; 141.751028Koordinat: 45°8′45″N 141°45′3.7″E / 45.14583°N 141.751028°E / 45.14583; 141.751028 Letak Stasiun TokumitsuOperator JR Hokkaid...

 

Annual team tennis league International Premier Tennis LeagueSportTeam tennisFounded2013 (2013)FounderMahesh BhupathiFirst season2014Ceased2016DirectorMahesh BhupathiMottoBreak the CodeNo. of teams4 (per season)Countries India Japan  Philippines Singapore United Arab EmiratesContinentAsiaLastchampion(s)Singapore SlammersMost titlesSingapore Slammers (2)Sponsor(s)The Coca-Cola CompanyOfficial websitewww.iptlworld.com The International Premier Tennis League (IPTL, ...

Division d'Honneur 1945-1946 Competizione Pro League Sport Calcio Edizione 43ª Organizzatore URBSFA/KBVB Date dal 26 agosto 1945al 2 giugno 1946 Luogo  Belgio Partecipanti 19 Risultati Vincitore KV Mechelen(2º titolo) Retrocessioni Tilleur FCCercle Brugge K.S.V. Cronologia della competizione 1943-1944 1946-1947 Manuale La Division d'Honneur 1945-1946 è stata la 43ª edizione della massima serie del campionato belga di calcio disputata tra il 26 agosto 1945 e il 2 giugno 1946 ...

 

Golf tournament held in the UK British Open and The Open redirect here. For other uses, see British Open (disambiguation) and The Open (disambiguation). The Open ChampionshipTournament informationEstablished1860Course(s)coursesOrganised byThe R&ATour(s)European TourPGA TourJapan Golf TourFormatStroke playPrize fundUS$16,500,000[1]Month playedJulyTournament record scoreAggregate264[a] Henrik Stenson (2016)To par−20[a] Henrik Stenson (2016)−20[a] Cameron ...

 

この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)出典検索?: コルク – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2017年4月) コルクを打ち抜いて作った瓶の栓 コルク(木栓、�...

Pour les articles homonymes, voir Toto. Toto CutugnoToto Cutugno en 2012.BiographieNaissance 7 juillet 1943Fosdinovo (Massa-Carrara, royaume d'Italie)Décès 22 août 2023 (à 80 ans)Milan (Italie)Nom de naissance Salvatore CutugnoNationalité italienneActivités Chanteur, animateur, guitariste, saxophoniste, artiste d'enregistrement, batteur, musicien, claviériste, animateur de télévision, auteur-compositeur-interprète, artiste interprète, compositeur, auteur-compositeur, parolier...

 

Disambiguazione – Se stai cercando altri significati, vedi Alexander Hamilton (disambigua). Questa voce o sezione sugli argomenti militari statunitensi e politici statunitensi non cita le fonti necessarie o quelle presenti sono insufficienti. Commento: fonti del tutto assenti Puoi migliorare questa voce aggiungendo citazioni da fonti attendibili secondo le linee guida sull'uso delle fonti. Segui i suggerimenti dei progetti di riferimento 1, 2. Alexander HamiltonJohn Trumbull, Ritratto...

 

此條目可参照英語維基百科相應條目来扩充。 (2021年5月6日)若您熟悉来源语言和主题,请协助参考外语维基百科扩充条目。请勿直接提交机械翻译,也不要翻译不可靠、低品质内容。依版权协议,译文需在编辑摘要注明来源,或于讨论页顶部标记{{Translated page}}标签。 约翰斯顿环礁Kalama Atoll 美國本土外小島嶼 Johnston Atoll 旗幟颂歌:《星條旗》The Star-Spangled Banner約翰斯頓環礁�...

2016年美國總統選舉 ← 2012 2016年11月8日 2020 → 538個選舉人團席位獲勝需270票民意調查投票率55.7%[1][2] ▲ 0.8 %   获提名人 唐納·川普 希拉莉·克林頓 政党 共和黨 民主党 家鄉州 紐約州 紐約州 竞选搭档 迈克·彭斯 蒂姆·凱恩 选举人票 304[3][4][註 1] 227[5] 胜出州/省 30 + 緬-2 20 + DC 民選得票 62,984,828[6] 65,853,514[6]...

 

Pour les articles homonymes, voir Jacques Oudin et Oudin. Pour l'homme politique, voir Jacques Oudin. Jacques OudinBiographieNaissance 15 mai 1908DreuxDécès 15 octobre 1985 (à 77 ans)Le Kremlin-BicêtreNom de naissance Jacques Henri Léon Marie Joseph OudinNationalité FrançaiseActivités Médecin, immunologiste, biologiste, chercheurAutres informationsMembre de Académie américaine des sciences (1974)Académie royale de médecine de BelgiqueAcadémie américaine des arts et des sc...

 

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada Maret 2016. SD Negeri Bratan IIInformasiJenisSekolah NegeriKepala SekolahSarjana, S.PdRentang kelasI - VIAlamatLokasiKidul Pasar Rt 01 Rw V Pajang Laweyan, Kota Surakarta, Jawa Tengah,  IndonesiaMoto SD Negeri Bratan II, merupakan salah satu Sekolah Dasar ...

У Вікіпедії є статті про інших людей із прізвищем Цимбалюк. Цимбалюк Михайло Михайлович Цимбалюк Михайло МихайловичГолова Львівської обласної державної адміністрації 21 грудня 2010 — 2 листопада 2011Попередник Василь ГорбальНаступник Михайло КостюкГолова Тернопіль�...

 

For the 1953 Czechoslovak film, see Nástup (film). Slovak periodical Nástup, volume 7 issue 6 (1938) Nástup (translated as line up[1] forming ranks,[2] deployment,[3] or ascent[4]) was a semimonthly Slovak periodical, published between 1933 and 1940,[4] that advocated Slovak autonomy, ethnonationalism, and antisemitism. Founded by Ferdinand Ďurčanský and his brother Ján, the magazine was oriented at younger Slovak Catholics, especially universit...

 

Diócesis de San Miguel Dioecesis Sancti Michaelis (en latín) Catedral basílica santuario Nuestra Señora de la PazInformación generalIglesia católicaIglesia sui iuris latinaRito romanoSufragánea de arquidiócesis de San SalvadorPatronazgo • san Miguel Arcángel• Nuestra Señora de la PazFecha de erección 11 de febrero de 1913 (como diócesis)SedeCatedral basílica santuario Nuestra Señora de la PazCiudad San Migueldepartamento San MiguelPaís El Salvador El SalvadorCuria dioc...

Economic research institute at Yale UniversityThis article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Cowles Foundation – news · newspapers · books · scholar · JSTOR (March 2024) (Learn how and when to remove this message)Cowles FoundationFormation1932LocationYale University, New Haven, ConnecticutDirectorLarry Samu...

 

City in and county seat of York County, Nebraska, United States City in Nebraska, United StatesYork, NebraskaCityYork water tower, May 2013Location within York County and NebraskaCoordinates: 40°52′12″N 97°35′34″W / 40.87000°N 97.59278°W / 40.87000; -97.59278CountryUnited StatesStateNebraskaCountyYorkArea[1] • Total6.56 sq mi (16.99 km2) • Land6.53 sq mi (16.92 km2) • Water0.03 s...