Operación lógica en Arduino que no entiendo

#1
Hola que tal, estoy traspansando un codigo de arduino a pic para controlar en PN532 shield, pero hay una operacion que no entiendo.

He aqui un extracto:

Código:
 cmdlen++;
  
#ifdef PN532DEBUG
  Serial.print("\\nSending: ");
#endif

  delay(2);     // or whatever the delay is for waking up the board

  // I2C START
  Wire.beginTransmission(PN532_I2C_ADDRESS);
  checksum = PN532_PREAMBLE + PN532_PREAMBLE + PN532_STARTCODE2;
  wiresend(PN532_PREAMBLE);
  wiresend(PN532_PREAMBLE);
  wiresend(PN532_STARTCODE2);

  wiresend(cmdlen);
  wiresend(~cmdlen + 1);
Entiendo todo lo de la comunicacion excepto esta linea:

Código:
  wiresend(~cmdlen + 1);
¿Que siginifica este signo ~ junto a la variable?

Gracias de antemano. ...
 
#2
Hola, eso quiere decir "el complemento de", por ejemplo, si la variable cmdlen tiene un valor de 0x0F, ~cmdlen tomará el valor de 0xF0.

Saludos
 

Temas similares