Spec-Zone.ru › Haskell 9

6.9.3. Шестнадцатеричные литералы с плавающей точкой

HexFloatLiterals
Версия:

8.4.1

Статус:

Включено в GHC2024, GHC2021

Позволяет записывать литералы с плавающей точкой в шестнадцатеричной нотации.

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

В этой нотации числа с плавающей точкой записываются с помощью шестнадцатеричных цифр, поэтому цифры интерпретируются в системе счисления с основанием 16, а не в обычной десятичной системе. Это означает, что цифры слева от десятичной точки соответствуют положительным степеням 16, а цифры справа — отрицательным.

Также можно записать явный показатель степени, который похож на показатель степени в десятичной нотации, но имеет следующие отличия:

  • показатель степени начинается с p, а не с e
  • показатель степени записывается в системе счисления с основанием 10 (не 16)
  • основание показателя степени — 2 (не 16).

С точки зрения внутреннего битового представления каждая шестнадцатеричная цифра соответствует 4 битам, а показатель степени можно представить как «перемещение» числа с плавающей точкой на один бит влево (отрицательный показатель) или вправо (положительный показатель). Вот несколько примеров:

  • 0x0.1 то же самое, что и 1/16
  • 0x0.01 то же самое, что и 1/256
  • 0xF.FF то же самое, что и 15 + 15/16 + 15/256
  • 0x0.1p4 то же самое, что и 1
  • 0x0.1p-4 то же самое, что и 1/256
  • 0x0.1p12 то же самое, что и 256

© 2002–2007 The University Court of the University of Glasgow. All rights reserved.
Licensed under the Glasgow Haskell Compiler License.
https://downloads.haskell.org/~ghc/9.14.1/docs/users_guide/exts/hex_float_literals.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API