Где брать дополнительные размеры для записи Infinity если закончились биты и байты?
Продвинутые темы
`Infinity` в JavaScript не требует «дополнительных битов»: это специальное значение стандарта IEEE 754, представляемое фиксированной битовой комбинацией, а не бесконечно большим числом.
Как хранятся числа
JavaScript использует формат IEEE 754 double (64 бита) для всех чисел. В нём есть специальные комбинации битов для особых значений:
- Infinity / -Infinity — переполнение, деление на ноль.
- NaN — не число.
- Обычные числа и ноль.
Infinity — это метка, не «большое число»
Infinity не пытается хранить бесконечно большое значение — это зарезервированная битовая комбинация (экспонента из всех единиц, мантисса ноль). Она занимает те же 64 бита, что и любое число:
Infinity; // специальное значение
1 / 0; // Infinity
Number.MAX_VALUE * 2; // Infinity — переполнение
typeof Infinity; // 'number'Когда появляется
- Переполнение (
Number.MAX_VALUE * 2). - Деление положительного на ноль.
- Явно:
Infinity,Number.POSITIVE_INFINITY.
Предельные значения
Number.MAX_VALUE— максимальное конечное число.- Больше →
Infinity(не «доп. биты», а особая метка). Number.MAX_SAFE_INTEGER— предел точных целых.
Коротко для собеседования
Infinity не требует дополнительных битов — это специальное значение IEEE 754 (фиксированная битовая комбинация: экспонента из единиц, мантисса ноль) в тех же 64 битах. Появляется при переполнении (MAX_VALUE * 2) или делении на ноль. Это метка «переполнение», а не бесконечно большое число.