bitowa reprezentacja podwójnej liczby

Zrobiłem ten program, który działa zgodnie z oczekiwaniami, aby poznać reprezentację bitową floatu:

float x1=-675.78125;
int *pint1;
pint1=(int *)&x1;


for(int i=0;i<8*sizeof(float);i++)
{

if(*pint1&1)
{
    cout<<1;
    }
else
    cout<<0;
    *pint1>>=1;

}

Ale to nie działa dla podwójnego:

double x=-675.78125;
int *pint;
pint=(int *)&x;

for(int i=0;i<8*sizeof(double);i++)
{

    if(*pint&1)
    {
        cout<<1;
        }
    else
        cout<<0;
        *pint>>=1;

    }

Czy mógłbyś mi wyjaśnić, dlaczego tak jest? Jak byś to zrobił? Dziękuję bardzo za Twoją pomoc.

questionAnswers(1)

yourAnswerToTheQuestion