-
HexFloatLiterals -
Позволяет записывать литералы с плавающей точкой в шестнадцатеричной нотации.
Шестнадцатеричная нотация для литералов с плавающей точкой полезна, когда необходимо точно указать константы с плавающей точкой, поскольку запись литерала тесно связана с внутренним битовым представлением числа.
В этой нотации числа с плавающей точкой записываются с помощью шестнадцатеричных цифр, поэтому цифры интерпретируются в системе счисления с основанием 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