[Dcmlib] Big Endian suite: comprends toujours pas

jean-michel.rouet at philips.com jean-michel.rouet at philips.com
Wed Jan 12 17:11:26 CET 2005


peut etre pour clarifier les choses:

prend ce petit programme:

#include <stdio.h>

int main(int argc, char *argv[])
{
  int value = 0x04030201; /* 1 2*256 3*256*256 4*256*256*256 */
  char *bytes = (char *)(&value);
  short *shorts = (short *)(&value);
  printf ("%08x is converted to ", value);
  printf ("%02x%02x%02x%02x\n", bytes[3], bytes[2], bytes[1], bytes[0]);
  printf ("%08x is converted to ", value);
  printf ("%04x%04x\n", shorts[1], shorts[0]);
}


execute sur I386:
tu obtiens: 
rouet at joebar /tmp>./test.exe
04030201 is converted to 04030201
04030201 is converted to 04030201

tu vois que l'ordre est bien little endian

maintenant execute le sur une sparc:
tu obtiens:
rouet at tan ~/src/tmp>./test
04030201 is converted to 01020304
04030201 is converted to 02010403

ou tu vois que l'on est donc sur du big endian, et que lorsque l'on 
convertit du 32bits sur du 16 bits on obtiens alors 2143

J'espere que c'est parlant.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.creatis.insa-lyon.fr/pipermail/dcmlib/attachments/20050112/afdcf270/attachment.html>


More information about the Dcmlib mailing list