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.