В формате PDF синтаксис номер 1.e10 должен быть записан как 10000000000. - PullRequest
0 голосов
/ 26 июня 2019

Глядя на PDF Referene ver 1.7 о том, как объекты типа число написаны в соответствии с действующим синтаксисом, который он сообщает.

Примечание. PDF не поддерживает синтаксис PostScript для чисел с не десятичные числа (например, 16 # FFFE) или в экспоненциальном формате (например, как 6.02E23).

Однако он также не предписывает максимальный диапазон, в котором должны быть числа. Это, кажется, предполагает, что было бы правильно написать

1.00E10 как 10000000000

или

1.00E-50 как 0.00000000000000000000000000000000000000000000000001

Следовательно, этот вопрос имеет 2 аспекта:

  • а) правильна ли запись (как указано в примерах?
  • b) ожидает ли формат PDF использования реализаций (или, по крайней мере, отступить) к некоторой обработке bigint / bigfloat) чисел, которые, как кажется, не обеспечивают любой диапазон для чисел?

1 Ответ

1 голос
/ 26 июня 2019

Прежде всего, для нормативной информации в PDF вы должны обратиться к соответствующим стандартам ISO, в частности ISO 32000. Да, в частности, Часть 1 (ISO 32000-1) получена из ссылки PDF 1.7 без такого большого количества изменений, но не без изменений тоже. (Хорошо, в некоторых ситуациях нужно также обратиться к старой ссылке в PDF, чтобы понять некоторые из этих изменений.)

Adobe опубликовала его копию (с «ISO» в удаленных заголовках страниц) на своем веб-сайте: https://www.adobe.com/content/dam/acom/en/devnet/pdf/pdfs/PDF32000_2008.pdf

Теперь к вашему вопросу:

Согласно ISO 32000, обе части 1 и 2:

Целое число записывается в виде одной или нескольких десятичных цифр, которым может предшествовать знак. [...]

Вещественное значение должно быть записано в виде одной или нескольких десятичных цифр с необязательным знаком и начальным, завершающим или встроенным PERIOD (2Eh) (десятичная точка).

(раздел 7.3.3 «Числовые объекты»)

Таким образом, относительно вашего вопроса а)

правильна ли запись (как указано в примерах?

Да, 10000000000 - это целочисленный числовой объект, 0.00000000000000000000000000000000000000000000000001 - это действительный числовой объект.

Относительно вашего вопроса б)

ожидает ли формат pdf реализации использования (или, по крайней мере, отступления к некоторой обработке bigint / bigfloat) чисел, поскольку, похоже, они не предоставляют никакого диапазона для чисел?

Нет, в том же разделе, что и выше, вы также найдете

Диапазон и точность чисел могут быть ограничены внутренними представлениями, используемыми в компьютере, на котором работает соответствующий считыватель; В Приложении C приведены эти ограничения для типичных реализаций.

и Приложение C рекомендует, по крайней мере, следующие ограничения:

целое число 2147483647 Наибольшее целочисленное значение; равно 2 31 - 1.

целое число -2147483648 Наименьшее целочисленное значение; равно −2 31

реальный ± 3.403 × 10 38 Наибольшие и наименьшие реальные значения (приблизительные).

реальный ± 1,175 × 10 -38 ненулевые действительные значения, наиболее близкие к 0 (приблизительные). Значения ближе, чем они автоматически преобразуются в 0.

реальный 5 Количество значащих десятичных знаков точности в дробной части (приблизительное).

(ISO 32000-1)

Целые Целочисленные значения (например, номера объектов) часто могут быть выражены в 32 битах.

Действительные числа Современные компьютеры часто представляют и обрабатывают действительные числа, используя стандарт IEEE для арифметики с плавающей точкой (IEEE 754) одинарной или двойной точности.

(ISO 32000-2)

...