|
Szabolcs Nagy |
029ecc |
#include <stdio.h>
|
|
Szabolcs Nagy |
029ecc |
#include <stdlib.h>
|
|
Szabolcs Nagy |
029ecc |
#include <stdint.h>
|
|
Szabolcs Nagy |
029ecc |
#include <errno.h>
|
|
Szabolcs Nagy |
029ecc |
|
|
Szabolcs Nagy |
029ecc |
int main(int argc, char *argv[])
|
|
Szabolcs Nagy |
029ecc |
{
|
|
Szabolcs Nagy |
029ecc |
int i;
|
|
Szabolcs Nagy |
029ecc |
union {float f; uint32_t i;} f;
|
|
Szabolcs Nagy |
029ecc |
union {double f; uint64_t i;} d;
|
|
Szabolcs Nagy |
029ecc |
union {long double f; struct {uint64_t m; uint16_t se;} i;} ld;
|
|
Szabolcs Nagy |
029ecc |
char *eptr;
|
|
Szabolcs Nagy |
029ecc |
|
|
Szabolcs Nagy |
029ecc |
for (i = 1; i < argc; i++) {
|
|
Szabolcs Nagy |
029ecc |
errno = 0;
|
|
Szabolcs Nagy |
029ecc |
f.f = strtof(argv[i], &eptr);
|
|
Szabolcs Nagy |
029ecc |
printf("0x%08x (*eptr:%d errno:%d)\n", f.i, *eptr, errno);
|
|
Szabolcs Nagy |
029ecc |
errno = 0;
|
|
Szabolcs Nagy |
029ecc |
d.f = strtod(argv[i], &eptr);
|
|
Szabolcs Nagy |
029ecc |
printf("0x%08x %08x (*eptr:%d errno:%d)\n",
|
|
Szabolcs Nagy |
029ecc |
(unsigned)(d.i>>32), (unsigned)d.i, *eptr, errno);
|
|
Szabolcs Nagy |
029ecc |
errno = 0;
|
|
Szabolcs Nagy |
029ecc |
ld.f = strtold(argv[i], &eptr);
|
|
Szabolcs Nagy |
029ecc |
printf("0x%04x %08x %08x (*eptr:%d errno:%d)\n",
|
|
Szabolcs Nagy |
029ecc |
ld.i.se, (unsigned)(ld.i.m>>32), (unsigned)ld.i.m, *eptr, errno);
|
|
Szabolcs Nagy |
029ecc |
}
|
|
Szabolcs Nagy |
029ecc |
return 0;
|
|
Szabolcs Nagy |
029ecc |
}
|