I have a four byte char array and I want to convert it to double. How can I achieve this in C.
-
1That entirely depends on what your four byte char array represents. Is it an integer? A fixed-point number? A floating-point number? In what format?caf– caf2010-08-31 05:50:11 +00:00Commented Aug 31, 2010 at 5:50
-
1There's more than one format of floating point number.caf– caf2010-08-31 06:04:44 +00:00Commented Aug 31, 2010 at 6:04
Add a comment
|
1 Answer
float and double are so closely related in C that an explicit conversion is probably not needed. However, it would be necessary for transmission to another system, or to match a data format specification. This will do what you ask:
union {
char c [4];
float f;
} x;
double d;
memcpy (x.c, character_source, sizeof x.c);
d = x.f;