• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

219
Views
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?

almost 3 years ago · Santiago Gelvez
1 answers
Answer question

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.

almost 3 years ago · Santiago Gelvez Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error