Soy consciente de que JS tiene >> aparentemente para turnos de números firmados y >>> para sin firmar.
Probé dos ejemplos simples en la consola del nodo:
a = 0b10000000000000000000000000000100 > a >> 31 -1 > a >>> 31 1He leído mdn, w3schools, etc. Pero espero que ambos casos sean 1 .
Además, vea un número de 31 bits:
a = 0b1000000000000000000000000000010; a>>30 1 a>>>30 1¿Cuál es el error?
¿Puede estar relacionado con JS leyendo el número como 32 bits y usando ese último bit como un signo?
> (a & a).toString(2) '-1111111111111111111111111111100'