Hola.
Estoy estudiando un programa, en esta parte del código.
flop = 0b01010001
void writeDatos(uint32_t Dato) {
//esta rutina registra una palabra de 32 bits en
// msb (b31) first, lsb (b0) last
for (byte flop = 32; flop > 0; flop--) { // La palabra PLL tiene 32 bits
(Dato & 0x80000000 ? PORTB |= 0b00001000 : PORTB &= 0b11110111);
PORTB |= 0b00010000; // clock in bit on rising edge of CLK (PB4 = 'pin12' = 1)
PORTB &= 0b11101111; //
Datos <<= 1; // rotate left for next bit
} // for flop
PORTB |= 0b00000100; //
PORTB &= 0b11111011; //
} // writeDatos
no entiendo la linea (Dato & 0x80000000 ? PORTB |= 0b00001000 : PORTB &= 0b11110111);
Que función hace "?" y ":"
Gracias por la ayuda.