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

157
Visualizações
Declaración de devolución de función de flecha y operación bit a bit

Tengo un byte y quiero incrementar los bits que quedan hasta el primer bit en 1 (el contexto es un pequeño Juego de la vida de Conway).

Ejemplo: 11 es 0000 1011 :

  1. quiero incrementar 101
  2. 5 + 1 = 6 es 110
  3. restablecer el primer bit al estado inicial
  4. el byte ahora es 0000 1101 que es 13

Preguntas:

  • ¿Hay alguna manera de hacer que addNeighbour proceda como un método nulo (no pude encontrar una manera de no devolver num )?
  • ¿Hay una mejor manera de realizar operaciones addNeighbour :

 const getBinaryRepresentation = (number) => { let str = ""; for (let i = 7; i >= 0; i--) { ((number & (1 << i)) != 0) ? str += "1" : str += "0"; } console.log(str) } let num = 5; getBinaryRepresentation(num) // 0000 0101 const addNeighbour = (num) => { const isAlive = num & 1; const neighbours = num >> 1; num = (neighbours + 1) << 1; if (isAlive === 1) num |= (1 << 0) return num; } num = addNeighbour(num); getBinaryRepresentation(num) // 0000 0111

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

¿Hay alguna manera de hacer que addNeighbour proceda como un método nulo (no pude encontrar una manera de no devolver num )?

No. Si no devuelve el resultado, no puede volver a asignarlo a num . Y no puede pasar una referencia a la variable let num (o cualquier otra) que la función deba leer y almacenar.

¿Hay una mejor manera de realizar operaciones addNeighbour

Sí. Sumar 1 en la posición del segundo bit menos significativo es lo mismo que sumar 2 en la posición de menor significado. Reemplace su código con

 num += 2;

Dicho en otros términos,

 (((num >> 1) + 1) << 1) | (num & 1) ≡ (((num >> 1) << 1) + (1 << 1)) | (num & 1) ≡ ((num & ~1) + (1 << 1)) | (num & 1) ≡ ((num & ~1) | (num & 1)) + (1 << 1) ≡ num + (1 << 1)
about 4 years ago · Juan Pablo Isaza Relatório

0

Como no puede tener byRef en valores simples en javascript, no puede devolver void y cambiar la variable fuera de la función.

Sin embargo, podría optimizar un poco la función reutilizando variables:

 const getBinaryRepresentation = (number) => { return console.log(number.toString(2).padStart(8, 0)); } let num = 5; getBinaryRepresentation(num) // 0000 0101 const addNeighbour = (num) => { const isAlive = num & 1; num >>= 1; num = (num + 1) << 1; return num | isAlive; } num = addNeighbour(num); getBinaryRepresentation(num) // 0000 0111

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