@@Robert B.
Ich muss ja gar nicht die Länge der Maske kennen. Denn ich weiß, dass mein Ausgangswert maximal 16 Bits lang ist. Insofern kann ich immer 2**16-1 als Maske verwenden.
sofern ich da keinen Denkfehler habe
Ich glaub, du hast da einen.
Die nötige Maskenlänge bekommst du mit dem 2er-Logarithmus:
const MaskLen = Math.ceil(Math.log(x) / Math.log(2) /* ≈ 3.7 */); // = 4
Nö. Die höherwertigen Datenbits in x können ja 0 gesetzt sein. Um zu entscheiden, wie viele von den führenden Nullen Datenbits sind, muss man die Anzahl der Datenbits kennen. Die Maskenlänge darf nicht vom aktuellen Wert von x abhängen.
😷 LLAP
--
„Dann ist ja auch schrecklich, dass wir in einem Land leben, in dem nicht nur Bildungswillige leben, sondern auch hinreichende Zahlen von Bekloppten. Das darf ich so locker formulieren, ich bin ja jetzt Rentner und muss nicht mehr auf jedes Wort achten.“
— Joachim Gauck über Impfgegner
„Dann ist ja auch schrecklich, dass wir in einem Land leben, in dem nicht nur Bildungswillige leben, sondern auch hinreichende Zahlen von Bekloppten. Das darf ich so locker formulieren, ich bin ja jetzt Rentner und muss nicht mehr auf jedes Wort achten.“
— Joachim Gauck über Impfgegner