Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

128
Vistas
¿Por qué 100 >> 100 y 100 >>> 100 devuelven 6 en Javascript?

De la documentación :

El operador de desplazamiento a la derecha (>>) desplaza el primer operando el número especificado de bits a la derecha. Los bits en exceso desplazados hacia la derecha se descartan. Las copias del bit más a la izquierda se desplazan desde la izquierda. Dado que el nuevo bit más a la izquierda tiene el mismo valor que el bit anterior más a la izquierda, el bit de signo (el bit más a la izquierda) no cambia. De ahí el nombre de "propagación de signos".

Por lo que entiendo, dado que 100 es 0b1100100 , cambiarlo 100 veces a la derecha debería producir 0b0 . Sin embargo, cuando ejecuto 100 >> 100 en Javascript (usando Chrome), devuelve 6. ¿Por qué es este el caso? Supongo que tiene algo que ver con la representación interna de números de JS, pero me gustaría saberlo más claramente.

Editar: la respuesta sigue siendo 6, incluso cuando se usa el operador >>> sin firmar. Firmar/sin firmar no parece importar.

Documentación de operación sin firmar:

El operador de desplazamiento a la derecha sin signo (>>>) (desplazamiento a la derecha de relleno cero) desplaza el primer operando el número especificado de bits a la derecha. Los bits en exceso desplazados hacia la derecha se descartan. Los bits cero se desplazan desde la izquierda. El bit de signo se convierte en 0, por lo que el resultado siempre es no negativo. A diferencia de los otros operadores bit a bit, el desplazamiento a la derecha de relleno cero devuelve un entero de 32 bits sin signo.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

El valor a la derecha se toma mod 32. (es decir, solo se usan los últimos cinco bits). Si calcula 100>>32 , obtiene 100 , que es lo mismo que obtiene cuando calcula 100>>0 . Después de eso, 100>>33 es 50 y el ciclo se repite.

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda