Converting CAN-Bus (HEX) values to binary to sort out interessting Bits

You don't have to convert anything as you already wrote yourself. To check for bit 12 on value just use:

if (value & (1 << 12)) ...

Or extract the subvalue of variable "value" at startbit 12, length 8 bit:

uint32_t detail = (value >> 12) & 0xFF;

I don't see any need for arrays or the like, the processor is able to handle the bit values.