Это зависит от реализации, но это будет очень, очень маловероятно .
Я признаю, что я не читал подробности реализации различных движков браузера, и CSS не определяет какой-либо конкретный тип хранения для чисел. Но я считаю, что можно с уверенностью предположить, что все основные браузеры используют 64-битные числа с плавающей запятой двойной точности («doubles», чтобы позаимствовать термин из C / C ++) для удовлетворения большинства своих числовых потребностей в CSS потому что это то, что JavaScript использует для чисел, и поэтому использование одного и того же типа облегчает интеграцию.
С точки зрения компьютера, все двойники несут одинаковое количество данных: 64 бита, независимо от того, равно ли это значение 1 или -3,14 или 1000000 или 1e100 . Время, необходимое для выполнения операции над этими числами, не зависит от фактического значения этих чисел, потому что оно всегда работает с одним и тем же объемом данных. Таким способом можно найти компромисс: двойные числа не могут точно представлять все числа (или даже все числа в пределах их диапазона), но они могут быть достаточно близки для большинства вопросов, а виды вещей, которые CSS делает не численно достаточно требовательна, чтобы нуждаться в большей точности. Объедините это с преимуществами прямой совместимости с JavaScript, и вы получите достаточно веские аргументы в пользу двойных чисел.
Не исключено, что кто-то может реализовать CSS с использованием кодирования переменной длины для чисел. Если бы кто-то использовал кодирование переменной длины, то сравнение с небольшими числами было бы дешевле, чем сравнение с большими числами, потому что большие числа имеют больше данных для обработки . Эти виды кодирования могут быть более точными, чем двоичные, но они также намного медленнее, и, в частности, для CSS, прироста точности, вероятно, недостаточно, чтобы стоить потери производительности. Я был бы очень удивлен, узнав, что любой браузер так поступает.
Теперь, теоретически, есть одно возможное исключение из всего, что я сказал выше: сравнение с нулем часто происходит быстрее, чем сравнение с другими числами . Это не потому, что ноль является коротким (если это было причиной, то 1 должен быть таким же быстрым, но это не так). Это потому, что ноль позволяет вам обманывать. Это единственное число, где все биты выключены, поэтому, если вы знаете, что одно из значений равно нулю, вам даже не нужно рассматривать другое значение как число: если какой-либо из битов включен, то он не равен ноль, и тогда вам нужно только взглянуть на один бит, чтобы увидеть, больше или меньше нуля.