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