Rolf B: BigInt.asIntN / .asUintN - wo ist der Sinn?

Beitrag lesen

Hallo alle,

der BigInt-Typ in JavaScript hat die Methoden BigInt.asIntN und BigInt.asUintN. Ich versuche gerade, mir eine nützliche Anwendung für diese Methoden einfallen zu lassen.

Laut Beschreibung wird ein BigInt-Wert durch diese Methoden auf eine bestimmte Anzahl von Bits beschnitten. War er länger, bleiben die tiefstwertigen Bits übrig.

BigInt.asIntN(16, 42000n) ergibt damit -23536n.

Aber - was hab ich davon? Diejenigen im Web, die diese Methoden diskutieren, schreiben nur die Spec bzw. den TC39-Propsal ab: Ich kann damit erreichen, dass mein BigInt die voreingestellte Bitlänge nicht übersteigt.

Ja. Gut. Für ein Int64Array oder Uint64Array kann ich damit erreichen, dass ich keine zu großen BigInt-Werte hineinschreibe, und sie genauso stumpf beschneiden wie es ein 64-bit Register in einem Prozessor tut.

Aber was nützt mir das, wenn ich damit den gleichen Effekt wie ein 64-bittiges Prozessorregister bekomme, das überläuft, aber ohne dabei ein Carry- und Overflow-Flag eines Prozessors zu bekommen, die mir anzeigen, dass eine Operation gerade übergelaufen ist und mir damit Behandlungsoptionen geben?

Rolf

--
sumpsi - posui - obstruxi