Das hängt von der Implementierung ab, ist aber sehr, sehr unwahrscheinlich .
Ich gebe zu, dass ich die Implementierungsdetails der verschiedenen Browser-Engines nicht durchgelesen habe und CSS keinen bestimmten Speichertyp für Zahlen spezifiziert. Ich bin jedoch der Meinung, dass davon ausgegangen werden kann, dass alle gängigen Browser 64-Bit-Gleitkommazahlen mit doppelter Genauigkeit ("Doubles") verwenden, um einen Begriff aus C / C ++ auszuleihen und die meisten ihrer numerischen Anforderungen in CSS zu erfüllen , weil JavaScript dies für Zahlen verwendet und daher die Integration durch Verwendung desselben Typs erleichtert.
Vom Standpunkt des Computers aus tragen alle Doubles dieselbe Datenmenge: 64 Bit, unabhängig davon, ob der Wert 1 oder -3,14 oder 1000000 oder 1e100 ist . Die Zeit, die für eine Operation mit diesen Zahlen benötigt wird, hängt nicht vom tatsächlichen Wert dieser Zahlen ab, da immer dieselbe Datenmenge verarbeitet wird. Es ist ein Kompromiss, Dinge auf diese Weise zu tun, da Doppelte nicht alle Zahlen (oder sogar alle Zahlen in ihrem Bereich) genau darstellen können, aber für die meisten Angelegenheiten nahe genug kommen können und die Art der Dinge, die CSS nicht numerisch tut -Anforderung genug, um mehr Präzision als das zu brauchen. Kombinieren Sie dies mit den Vorteilen der direkten Kompatibilität mit JavaScript, und Sie haben ein ziemlich starkes Argument für Doppel.
Es ist nicht unmöglich, dass jemand CSS mithilfe einer Codierung variabler Länge für Zahlen implementiert. Wenn jemand eine Codierung mit variabler Länge verwendet, dann gegen kleine Zahlen zu vergleichen wäre weniger teuer als Vergleich gegen eine große Zahl, weil eine große Zahl mehr Daten knirschen . Diese Art der Codierung kann präziser als die Binärcodierung sein, sie ist jedoch auch viel langsamer, und insbesondere für CSS reichen die Genauigkeitsgewinne wahrscheinlich nicht aus, um den Leistungseffekt zu erzielen. Ich wäre sehr überrascht zu erfahren, dass jeder Browser die Dinge so gemacht hat.
Theoretisch gibt es zu allem, was ich oben gesagt habe, eine mögliche Ausnahme: Der Vergleich mit Null ist oft schneller als der Vergleich mit anderen Zahlen . Das liegt nicht daran, dass Null kurz ist (wenn das der Grund wäre, dann sollte 1 genauso schnell sein, aber es ist nicht so). Es liegt daran, dass Sie mit Null betrügen können. Es ist die einzige Zahl, bei der alle Bits deaktiviert sind. Wenn Sie also wissen, dass einer der Werte Null ist, müssen Sie den anderen Wert nicht einmal als Zahl betrachten: Wenn eines der Bits aktiviert ist, ist es nicht gleich Null, und dann müssen Sie nur ein Bit betrachten, um festzustellen, ob es größer oder kleiner als Null ist.