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

284
Vistas
desplazamiento a la derecha >> convierte el valor en cero javascript

Intentando alguna manipulación de bits en javascript.

Considera lo siguiente:

 const n = 4393751543811; console.log(n.toString(2)) // '111111111100000000000000000000000000000011' console.log(n & 0b11) // last two bits equal 3 const m = n >> 2; // right shift 2 // The unexpected. console.log(m.toString(2)) // '0'

El resultado es 0? El resultado esperado que estoy buscando después del cambio a la derecha es:

 111111111100000000000000000000000000000011 // pre 001111111111000000000000000000000000000000 // post >>

¿Cómo se logra esto?

about 4 years ago · Santiago Gelvez
1 Respuestas
Responde la pregunta

0

Los operadores bit a bit de Javascript en números funcionan "como si" en enteros de 32 bits.

>> (desplazamiento a la derecha de propagación de signos para números) primero se convertirá a un entero de 32 bits . Si lee la especificación vinculada, tenga en cuenta específicamente

Sea int32bit int módulo 2 32 .

En otras palabras, todos los bits por encima de 32 simplemente se ignorarán. Para su número, esto da como resultado lo siguiente:

 111111111100000000000000000000000000000011 ┗removed━┛┗━━━━━━━━━━━━━━32bit━━━━━━━━━━━━━┛

Si quieres, puedes usar BigInt :

 const n = 4393751543811n; // note the n-suffix console.log(n.toString(2)) console.log(n & 0b11n) // for BigInt, all operands must be BigInt const m = n >> 2n; // The expected. console.log(m.toString(2))

La especificación para >> en BigInt usa BigInt::leftShift(x, -y) , donde a su vez establece:

La semántica aquí debería ser equivalente a un cambio bit a bit, tratando BigInt como una cadena de longitud infinita de dígitos de complemento a dos binarios.

about 4 years ago · Santiago Gelvez 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