Related to this question: Printf width specifier to maintain precision of floating-point value.
I want to print the significant digits of a number n represented using a double d as n = 2^d. 
Is there a function of d which computes the significant digits of n? A maximum number (larger than 0) for the significant digits is also fine, like DBL_DIG in float.h.
Edit:
I will be doing many additions to d such that 2^d >> MAX_DOUBLE. I suspect therefore the number of significant digits in n will be less than the significant digits of d. Is this true? By addition I mean (hopefully this makes sense): 
Let n = n1 + n2, n1 = 2^d1, n2 = 2^d2 then I will perform d = d1 + d2, such that n = 2^d.
The reason I am using this is because it is nearly impossible to let d overflow and I am fine with loosing lots of precision in n.
I will be using a function described here: http://buddy.sourceforge.net/manual/group__info_ge551a6cc544c7d50a3d7c7fb7f5f9374.html#ge551a6cc544c7d50a3d7c7fb7f5f9374.
