I was thinking more like: (uncompiled, untested)
const char* SPCR_names [] = {"SPR0", "SPR1", "CPHA", "CPOL",
"MSTR", "DORD", "SPE", "SPIE"};
void printSPCR ()
{
byte SPCRVal = SPCR; //snapshot
for (int i = 7; i >= 0; --i) {
if ((SPCRVal >> i) & 1) {
Serial.print (SPCR_names [i]);
// maybe print a space or comma here?
}
}
}
(for extra credits, use PROGMEM for the strings)