Hallo
gibt es irgendwo eine funktion, die ein C double so konvertiert, das man es in Java laden kann? Also ein C programm soll ein konvertiertes double in eine Datei speichern und ein Java Programm soll es ohne probleme laden koennen.
Von mir aus aus irgendeiner API oder Bibliothek.
Ich hab z.B. diese Funktionen benutzt um den double in Network-Endian zu konvertieren, bei long oder int geht das gut, bei double scheitert es:
gibt es irgendwo eine funktion, die ein C double so konvertiert, das man es in Java laden kann? Also ein C programm soll ein konvertiertes double in eine Datei speichern und ein Java Programm soll es ohne probleme laden koennen.
Von mir aus aus irgendeiner API oder Bibliothek.
Ich hab z.B. diese Funktionen benutzt um den double in Network-Endian zu konvertieren, bei long oder int geht das gut, bei double scheitert es:
Code:
inline unsigned int htonl (unsigned int i) {
return
( i << 24 ) & 0xFF000000 |
( i << 8 ) & 0x00FF0000 |
( i >> 8 ) & 0x0000FF00 |
( i >> 24 ) & 0x000000FF;
}
inline unsigned long long htonll (unsigned long long ll) {
return
( ll << 56 ) & 0xFF00000000000000ULL |
( ll << 40 ) & 0x00FF000000000000ULL |
( ll << 24 ) & 0x0000FF0000000000ULL |
( ll << 8 ) & 0x000000FF00000000ULL |
( ll >> 8 ) & 0x00000000FF000000ULL |
( ll >> 24 ) & 0x0000000000FF0000ULL |
( ll >> 40 ) & 0x000000000000FF00ULL |
( ll >> 56 ) & 0x00000000000000FFULL;
}
double htond(double d)
{
unsigned long long ll = htonll( *(unsigned long long *)&d ) ;
return *(double *)&ll ;
}