Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

154
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!