Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

123
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!