Salut � tous !

Je me retrouve � lire (en C++) des fichiers non format�s (binaires) s�quentiels g�n�r�s en Fortran, ce qui met � mal le peu de sant� mentale qu�il me reste. Au-del� des probl�mes de d�limiteurs d�enregistrements que je pense avoir r�gl�, j�ai besoin de faire des conversions depuis petit-boutsien (little-endian) � gros-boutsien (big-endian) et inversement. Voici un code qui semble donner satisfaction :

Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
  /**
   * \brief Swap from little or big endian to the other.
   * \param x Data to be converted.
   * \todo This function has to be redone in a more secure way.
   */
  template <class T> inline void littleBigEndian (T &x) {
    // Number of bits for the swap. Infers that a char has 8 bits.
    const size_t n = sizeof(T) * 4;
    x = (x << n) | (x >> n);
  }  // void littleBigEndian (T &)
N�anmoins, je crains qu�elle ne soit pas tr�s s�r dans le cas de valeurs sign�es. De plus, je ne suis pas certain que ce soit le meilleur moyen d�effectuer cette conversion. Si quelqu�un s�est d�j� attel� � ce probl�me et a des conseils, je suis preneur.

� bient�t.

Le Farfadet Spatial