Базовый 64-битный двоичный формат IEEE-754 использует 53-битные значения.Каждое конечное число, которое оно кодирует, имеет вид s • F • 2 e , где s (для знака) равен +1 или -1, F (для дробной части) - это номер 53-разрядной двоичной цифры b . bbb … bbb (обратите внимание на «.» После первого бита), а e - показатель степени от −1022 до +1023.(Часто числа с плавающей запятой нормализуются , сдвигая биты для перемещения первого 1 бита в ведущее положение b и корректируя показатель степени для компенсации. Для обсуждения представимых значений мыможно игнорировать это; все числа, представимые с ведущим 0, также представимы с ведущим 1, пока показатель степени находится в пределах границ, что и для этого вопроса.)
Это говорит нам обо всем, что необходимо для ответа навопрос.Каждое целое число от 0 до 2 53 -1 представляется в виде +1 • b . bbb … bbb • 2 52 для некоторой комбинации значений битов b . bbb … bbb .А 2 53 представляется как +1 • 1.000… 000 • 2 53 .Но 2 53 + 1 не может быть представлен, потому что для этого потребуется F в форме 1.000… 0001, где требуется 54 бита (первый для 2 53 и последний для 2 0 ).
После этого 2 53 + 2 представимо, поскольку для охвата его старшего и младшего 1 бита требуется только 53 бита (изОт 2 53 до 2 1 ).Таким образом, при этой величине четные целые числа представимы, а нечетные целые не являются.
Итак, переход от последовательных представимых целых чисел к непредставимым целым выглядит следующим образом:
- 9 007 199 254 740 919 = 2 53 −3 представимо.
- 9,007,199,254,740,920 = 2 53 -2 представимо.
- 9,007,199,254,740,921 = 2 53 -1 представимо.
- 9,007,199,254,740,922 = 2 53 представимо.
- 9,007,199,254,740,923 = 2 53 + 1 не представимо.
- 9,007,199,254,740,924 = 2 53 + 2 представимо.
- 9,007,199,254,740,925 = 2 53 + 3 не представимо.
- 9,007,199,254,740,926 = 2 53 + 4 представимо.