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

72
Vistas
Cómo manipular más de 21 bits Número decimal/entero en Javascript

Quiero manipular un número binario de 32 bits para contar la cantidad de "1". La entrada para mi función es el número binario como este 1111111111111111111111111111111111. Ambas situaciones no me permiten manipular y trabajar con una entrada de número binario.

Aquí está mi código:

 var countingOnes = function (n) { let binx = { n: `${n.toString(2)}` }; console.log(binx); let counter = 0; for (let j = 0; j < binx.n.length; j++) { if (binx.n.charAt(j) === "0") { counter = counter; } else { counter = counter + 1; } } console.log(counter); }; countingOnes(11111111111111111111111111111101);

Muchas gracias de antemano

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

0

No estoy seguro de cuál es su objetivo, pero los operadores Bitwise pueden ser lo que está buscando.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Bitwise_AND_assignment

le permiten realizar manipulación de bits a los números reales. ¿Hay alguna razón específica por la que necesita la salida como una cadena?

eche un vistazo a esto. No lo he probado por completo, pero parece funcionar asumiendo un número entero de 32 bits ...

 function count1s(num = 5986) { //parse to an integer const integer = parseInt(num); //loop through and count let count = 0; for(let i = 0; i < 32; i++) { let test = integer >> (32 - i); if((test % 2) === 1) { count++; } } //return the results return count; } console.log(count1s());
about 4 years ago · Juan Pablo Isaza Denunciar

0

después de algunos cambios, he aplicado la siguiente solución:

 var countingOnes = function (n) { let binx = n.toString(2); let counter = 0; for (let j = 0; j < binx.length; j++) { if (binx.charAt(j) === "0") { counter = counter; } else { counter = counter + 1; } } return counter; }; countingOnes("11111111111111111111111111111101");

En lugar de considerar la entrada como un número de 32 caracteres, he considerado la entrada como una cadena de 32 caracteres. Más fácil de manipular. ¡Gracias a todos por el aporte y las sugerencias!

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