[Dcmlib] Re: Swap bytes

Mathieu Malaterre mathieu.malaterre at kitware.com
Sun Feb 6 20:34:30 CET 2005


[Redirection sur dcmlib au lieu de pubcvs]

Ben pour etre honnete j'ai fais un copier coller de ce qu'il y avait dans gdcmDocument.Cxx (de memoire). La seule difference c'est qu'il y avait un unisgned short 0x0ff00 ou quelque chose du genre (il doit etre dans gdcm 0.6 au passage). Je suis parti du principe que c'est ce qu'il fallait faire.

J'ai verifier au passage dans VTK/Common/vtkByteSwap.cxx VTK fais la meme chose (au detail pret qu'il font short + adition ou adition + shift).

Si t'es sur de ce que tu fais, fais la modif (ca a l'air de simplifier). Mais encore une fois j'ai passé pas mal de temps et je compte pas y retoucher...

Mathieu
Ps: tente aujourd'hui si ca pete le dashboard demain revient a ma version + compliquée.

> Salut, Mathieu
> 
> J'ai vu que avais remplace le code de swap des int 16 :
> 
>                //buffer[i] =  (binArea16[i] >> 8) | (binArea16[i] << 8);
> par
>                uint16_t val = binArea16[i];
>                buffer[i] = ((( val << 8 ) & 0xff00 ) | (( val >> 8 ) & 
> 0x00ff ) );
> 
> Veux-tu dire par la qu'il y a des machines pour lesquelles les 
> operateurs >> et << font du 'decalage circulaire'?
> 
> Je n'en jamais vu, mais on ne sais jamais ...
> Le code suivant :
> main() {
>    uint16_t a = 0x1234;
>    uint16_t b = (a >> 8) | (a <<8) ;
>    printf ("%04x\n",b);
> }
> Permet de voir si la version initiale est ou non correcte .
> Si c'est le cas partout, autant garder la version initiale, non?
> 
> JPRx
>    
> _______________________________________________
> Pubcvs-commits-list mailing list
> Pubcvs-commits-list at creatis.insa-lyon.fr
> http://www.creatis.insa-lyon.fr/mailman/listinfo/pubcvs-commits-list
> 




More information about the Dcmlib mailing list