Suppose I do a
double d = 234.5;
I want to see the memory contents of d
[the whole 8 bytes]
How do I do that?
If you want to print the double values in bits try this. I have tried for float value. If you changed that you can be able to view the double value in 64 bits.
#include
int main (void)
{
float f = 10.0f;
struct Float {
unsigned char bit01:1;
unsigned char bit02:1;
unsigned char bit03:1;
unsigned char bit04:1;
unsigned char bit05:1;
unsigned char bit06:1;
unsigned char bit07:1;
unsigned char bit08:1;
unsigned char bit09:1;
unsigned char bit10:1;
unsigned char bit11:1;
unsigned char bit12:1;
unsigned char bit13:1;
unsigned char bit14:1;
unsigned char bit15:1;
unsigned char bit16:1;
unsigned char bit17:1;
unsigned char bit18:1;
unsigned char bit19:1;
unsigned char bit20:1;
unsigned char bit21:1;
unsigned char bit22:1;
unsigned char bit23:1;
unsigned char bit24:1;
unsigned char bit25:1;
unsigned char bit26:1;
unsigned char bit27:1;
unsigned char bit28:1;
unsigned char bit29:1;
unsigned char bit30:1;
unsigned char bit31:1;
unsigned char bit32:1;
};
struct Float *F;
F = (struct Float *) &f;
printf("\nMSB -->1 bit for sign bit; 8 bit for exponent; 23 bit for mantisa<-- LSB\n");
printf("%d ", F->bit32);
printf("%d", F->bit31);
printf("%d", F->bit30);
printf("%d", F->bit29);
printf("%d", F->bit28);
printf("%d", F->bit27);
printf("%d", F->bit26);
printf("%d", F->bit25);
printf("%d ", F->bit24);
printf("%d", F->bit23);
printf("%d", F->bit22);
printf("%d", F->bit21);
printf("%d", F->bit20);
printf("%d", F->bit19);
printf("%d", F->bit18);
printf("%d", F->bit17);
printf("%d", F->bit16);
printf("%d", F->bit15);
printf("%d", F->bit14);
printf("%d", F->bit13);
printf("%d", F->bit12);
printf("%d", F->bit11);
printf("%d", F->bit10);
printf("%d", F->bit09);
printf("%d", F->bit08);
printf("%d", F->bit07);
printf("%d", F->bit06);
printf("%d", F->bit05);
printf("%d", F->bit04);
printf("%d", F->bit03);
printf("%d", F->bit02);
printf("%d\n", F->bit01);
}