\( \renewcommand{\renewcommand}{} \)

Autor Tema: Pregunta funcion ShiftOut del IDE de Arduino.  (Leído 24 veces)

Desconectado kurtsik

  • Recién llegado
  • *
  • Mensajes: 13
    • Mi blog
Pregunta funcion ShiftOut del IDE de Arduino.
« en: 11 de Marzo de 2019, 18:27:41 »
Buenas.
Este es el contenido de la funcion ShiftOut del IDE de Arduino:
Código: [Seleccionar]
void shiftOut(uint8_t dataPin, uint8_t clockPin, uint8_t bitOrder, uint8_t val)
{
uint8_t i;

for (i = 0; i < 8; i++)  {
if (bitOrder == LSBFIRST)
digitalWrite(dataPin, !!(val & (1 << i)));
else
digitalWrite(dataPin, !!(val & (1 << (7 - i))));

digitalWrite(clockPin, HIGH);
digitalWrite(clockPin, LOW);
}
}

La pregunta es si me podeis dar alguna idea de lo que significa este trozo: "!!(val & (1 << i))", especificamente el operador "!!".

Un saludo.

Desconectado ElektroQuark

  • Administrador
  • Sr. Member
  • *****
  • Mensajes: 720
    • ElektroQuark
Re:Pregunta funcion ShiftOut del IDE de Arduino.
« Respuesta #1 en: 11 de Marzo de 2019, 19:26:35 »
No se trata del operador "!!" si no de dos "!" seguidos. Niega y vuelve a negar el resultado.

Desconectado kurtsik

  • Recién llegado
  • *
  • Mensajes: 13
    • Mi blog
Re:Pregunta funcion ShiftOut del IDE de Arduino.
« Respuesta #2 en: 11 de Marzo de 2019, 22:19:53 »
Crees que eso tiene sentido?, dos negaciones dejan el valor como estaba.