C ++ 17 Конфликт суффикса с одинарной точностью литерального числа с плавающей запятой? - PullRequest
0 голосов
/ 13 октября 2018

Я искал спецификацию C ++ 17 для литералов с плавающей запятой и обнаружил проблему.Как определить разницу между цифрой F и суффиксом F для одинарной точности?

Например, переводит ли литерал 0x1p0F в двойную точность 32768.0L или в одну точность 1.0F?

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

1 Ответ

0 голосов
/ 13 октября 2018

В шестнадцатеричном литерале должен использоваться показатель p.Показатель степени определяется с использованием шестнадцатеричных цифр (десятичное целое число, представляющее показатель, который будет применен к 2).Следовательно, он не может содержать символы «AF».Так что нет никакой двусмысленности.0x1p0F имеет показатель степени "0" и имеет тип float.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...