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