Bonjour,

J' ai un problème dans mon programme.
je n' arrive pas à convertir les nombres négatifs en hexa j' ai un résultat incohérent.
Je tente de récupérer l' adresse du premier argument du main.
Je découpe l' adresse (8octets) en deux pour al faire rentrer dans un deux int.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
 int   var;
 int   nb;
 long long     var2;
 void  *ml;
 
 ml = argv[0];
 var2 = ((long long)ml);
 nb = var2;
 var = ((long long)ml >> 32);
 if (nb < 0)
   nb = nb * -1;
 printf ("decimal nb : %d\n", nb);                    
 printf ("HEXA nb   :  %s\n", int_to_base(nb, "0123456789abcdef", 16));
 printf("DECIMAL : %d\n", argv[0]);                             
 
 
 return (0);