Переменная C ++, которую можно использовать в любом файле проекта

Существует два возможных значения (представления бит) для 0. Это не уникально. Особенно это касается чисел с плавающей запятой. Это связано с тем, что числа с плавающей запятой фактически хранятся как своего рода формула.

Целые числа также могут храниться отдельно. Вы можете иметь числовое значение с дополнительным знаковым битом, поэтому в 16-битном пространстве вы можете сохранить 15-битное целочисленное значение и знаковый бит. В этом представлении значение 1000 (hex) и 0000 оба равно 0, но одно из них равно +0, а другое - -0.

Этого можно избежать, вычитая 1 из целочисленного значения, поэтому оно варьировалось от -1 до -2 ^ 16, но это было бы неудобно.

Более общий подход заключается в сохранении целые числа в «двух дополнениях», но, по-видимому, ECMAscript решил не делать этого. В этом методе номера колеблются от 0000 до 7FFF. Отрицательные числа начинаются с FFFF (-1) до 8000.

Конечно, те же правила применяются и к большим целым числам, но я не хочу, чтобы мой F износился. ;)

0
задан user3087101 10 December 2013 в 13:49
поделиться