Неподписанный дважды в C++?

Почему C++ не поддерживает неподписанный двойной синтаксис?

63
задан unwind 2 January 2012 в 12:45
поделиться

3 ответа

Потому что типичные форматы с плавающей точкой не поддерживают беззнаковые числа. Смотрите, например, этот список форматов IEEE 754.

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

68
ответ дан 24 November 2019 в 16:26
поделиться

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

7
ответ дан 24 November 2019 в 16:26
поделиться

C ++ не поддерживает типы с плавающей запятой без знака, потому что большая часть оборудования с плавающей запятой не поддерживает типы с плавающей запятой без знака. Некоторые видеокарты действительно работают с числами с плавающей запятой без знака, но, как правило, они являются внутренними, не видимыми для программы или пользователя.

14
ответ дан 24 November 2019 в 16:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: