double x = 3.9 (double) 3.9000000 sizeof(x) (unsigned long) 8 x & 0xFF error: invalid operands to binary expression ('double' and 'int') x & 0xFF ~ ^ ~~~~ static_cast(x) & 0xFF (unsigned long) 3 *reinterpret_cast(&x) (unsigned long) 4615964438073389875 *reinterpret_cast(&x) & 0xFF (unsigned long) 51