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

151
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar

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 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