Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

71
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda