Hexadecimals Literals

Résolu
alonsyl Messages postés 348 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 6 novembre 2008 - 3 janv. 2006 à 20:56
Belette32 Messages postés 57 Date d'inscription mercredi 14 septembre 2005 Statut Membre Dernière intervention 22 novembre 2007 - 4 janv. 2006 à 14:30
bonjour,

en tapant le morceau de code suivant :
public class Tata {
public static void main(String[] args) {
int y = 0xef;
System.out.println(y);
}
}

j'obtiens en console : 239

comment obtient t'on ce chiffre ?

voici la correspondance que j'ai trouve dans un de mes bouquins :
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 1 2 3 4 5 6 7 8 9 a b c d e f

je devrais donc avoir :15^0 * f + 15^1 * e 15^0 *15 + 15^1 * 14 225

or : 225 != 239, ou est mon erreur ?

d'autre part, comment fait t'on pour specifier si l'on desire un nombre négatifs ? Quelle aurait ete l'ecriture de mon "int y = 0xef;" si j'avais voulu obtenir -
239 ?

merci a vous,

alonsyl

4 réponses

Belette32 Messages postés 57 Date d'inscription mercredi 14 septembre 2005 Statut Membre Dernière intervention 22 novembre 2007
4 janv. 2006 à 10:31
slt. L'hexadecimal est une base de 16. Pour convertir ton chiffre en base de 10, voici le calcul que tu doit faire :
16^1*e + 16^0*f 16 * 14 + 1 * 15 239.

Belette32
3
alonsyl Messages postés 348 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 6 novembre 2008 12
4 janv. 2006 à 13:30
0
alonsyl Messages postés 348 Date d'inscription mardi 6 avril 2004 Statut Membre Dernière intervention 6 novembre 2008 12
4 janv. 2006 à 13:31
ok, merci a toi Belette32 !
saurais-tu comment signifier si mon nombre est negatif en hexadecimal (-239) ?

alonsyl
0
Belette32 Messages postés 57 Date d'inscription mercredi 14 septembre 2005 Statut Membre Dernière intervention 22 novembre 2007
4 janv. 2006 à 14:30
re, j'ai oublié le probleme du nombre negatif. Le truc, c'est qu'en hexadécimale, c'est plus chiant pour le signe. En fait, tout dépend de la longueur de ton mot. Je m'explique :

si ton mot a deux chiffres(par exemple ef) : le nombre de possiblité est 16*16=256. Si tu veux mettre un signe, le nombre de possibilité sera toujours 256, mais au lieu d'aller de 0 a 255, le nombre ira de -128 a +127.


Pour aller de 0 a 127, ton nombre ira de 00 a 7F. Puis, -1 sera 80, -2 sera 81 jusqu'a -128 qui sera ff.


Si tu veux toujours arriver jusqu'a 256, il faut que ajoute un nouveau chiffre devant(tu iras de -256 a +255). Le probleme c est que ton nombre ne rentrera plus sur 8 bit. Enfin tout dépend de l'utilisation que tu veux en faire(si c'est juste pour t'amuser a convertir, ca ira).

Belette32
0
Rejoignez-nous