Moin Gunnar,
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.
ich glaube, dass JavaScript an dieser Stelle vielleicht die falsche Sprache ist:
const x = 0b00001101; // = 13
~x & 0b11111111; // = 242
~0b00001101 & 0b11111111 // = 242
Viele Grüße
Robert