Hice una migración de código de javascript a java, pero los resultados de la siguiente operación son diferentes:
en javascript: -1316818646 >>> 0 = 2978148650 pero en java: -1316818646 >>> 0 = -1316818646
¿Podría alguien ayudarme, por favor? no encontre la respuesta en otro lado
En Java, el operador te devuelve el mismo número que un int. En JavaScript, el operador >>> siempre le devuelve un entero de 32 bits sin signo.
Como dijo @Pydawan, 2978148650 es solo el valor sin firmar de -1316818646 o 10110001100000101111000100101010 . Para obtener eso en Java, llame
Integer.toUnsignedLong(-1316818646)