[Solved] What does this code mean? 1:0 - is probably not football score...

Good evening!

I'm trying to make sense of RF24 library, came across some unfamiliar syntax:

void RF24::print_status(uint8_t status)
  printf_P(PSTR("STATUS\t\t = 0x%02x RX_DR=%x TX_DS=%x MAX_RT=%x RX_P_NO=%x TX_FULL=%x\r\n"),
           (status & _BV(RX_DR))?1:0,
           (status & _BV(TX_DS))?1:0,
           (status & _BV(MAX_RT))?1:0,
           ((status >> RX_P_NO) & 0b111),
           (status & _BV(TX_FULL))?1:0
          ); }

This got something to do with printing out status of the chip. RX_DR, TX_DS and other things in brackets are bit mnemonics.
I'm wondering what ?1:0 stands for and what an underscore in front of _BV is for?
Have seen this underscore in other places as well, like: status = _SPI.transfer( cmd );

(status & _BV(RX_DR))?1:0

uses the quaternary operator. In pseudocode:

if ( (status & (1<<RX_DR)) != 0 )
then the result is 1;
else the result is 0;

BV = bit value. The "" is part of a function name or macro directive.

Got it. Thanks a lot!