Ecriture hexadécimale d'un nombre

Ecriture hexadécimale d'un nombre - Java - Programmation

Marsh Posté le 12-12-2002 à 10:44:17    

Le truc, c'est que je fais un masque binaire pour récupérer la partie haute et la partie basse d'un int.
du coup je vais faire un masque binaire
je voudrais faire ça (la syntaxe, justement, est incorrecte !):

Code :
  1. int iHighPart = iMyInt & 0xFFFF0000; //(en C, c comme ça, on fout 0x devant)
  2. int iLowPart  = iMyInt & 0x0000FFFF; //(en hexa)

Reply

Marsh Posté le 12-12-2002 à 10:44:17   

Reply

Marsh Posté le 12-12-2002 à 10:45:10    

Je sais bien que pourrais convertir mes masques en décimale, mais c'est qd même carrrément moins joliet moins compréhensible !

Reply

Marsh Posté le 12-12-2002 à 11:04:09    

ça doit bien exister aussi cette possibilité de notation en Java, non ?

Reply

Marsh Posté le 12-12-2002 à 11:06:34    

Integer.toHexaString()?  :)
 


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 12-12-2002 à 11:09:01    

El_Gringo a écrit :

ça doit bien exister aussi cette possibilité de notation en Java, non ?


 
Bin ouais, c'est la même :D


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 12-12-2002 à 11:18:13    

DarkLord a écrit :

Integer.toHexaString()?  :)


 
...Allons Dark, j'vais pas appliquer un masque binaire sur un String  :pfff:

Reply

Marsh Posté le 12-12-2002 à 11:18:53    

Taiche a écrit :


 
Bin ouais, c'est la même :D


 
Ha ouais... c'est con, j'avais mis un O à la place d'un 0 :D

Reply

Marsh Posté le 12-12-2002 à 11:21:57    

El_Gringo a écrit :


 
...Allons Dark, j'vais pas appliquer un masque binaire sur un String  :pfff:  


 
bin désolé hein. Ta question est pas claire du tout donc j'essaie de comprendre ce que tu veux dire ...


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 12-12-2002 à 11:22:14    

El_Gringo a écrit :


 
Ha ouais... c'est con, j'avais mis un O à la place d'un 0 :D


 
 :sarcastic:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 12-12-2002 à 11:22:17    

El_Gringo a écrit :

Ha ouais... c'est con, j'avais mis un O à la place d'un 0 :D


Là je me permet d'intervenir : [:tapai]


---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 12-12-2002 à 11:22:17   

Reply

Marsh Posté le 12-12-2002 à 11:24:21    

DarkLord a écrit :


 
bin désolé hein. Ta question est pas claire du tout donc j'essaie de comprendre ce que tu veux dire ...


 
Ben avec la ligne de code que j'ai mis, ça apparaissait qd même clairement.
Mais merci qd même hein :D

Reply

Marsh Posté le 12-12-2002 à 11:25:04    

gm_superstar a écrit :


Là je me permet d'intervenir : [:tapai]


 
Oui, frappe moi, je le mérite ! [:iznogoud_23]

Reply

Marsh Posté le 12-12-2002 à 11:26:47    

Reply

Marsh Posté le 12-12-2002 à 11:42:50    

Raaah, mais en fait j'arrive pas à faire ce que je veux faire.
C'est en C, mais bon, c exactement la même chose qu'en Java :
inverser la partie haute et la partie passe d'un int.
Donc : passer les 4 premier octets en dernier et les 4 derniers en 1er. De sorte que 0xAB802453 devienne 0x2453AB80 (c pour un codage).
J'extrait la partie haute et la partie basse comme dans mon 1er post, mais, et après ?

Reply

Marsh Posté le 12-12-2002 à 11:44:49    

El_Gringo a écrit :

Raaah, mais en fait j'arrive pas à faire ce que je veux faire.
C'est en C, mais bon, c exactement la même chose qu'en Java :
inverser la partie haute et la partie passe d'un int.
Donc : passer les 4 premier octets en dernier et les 4 derniers en 1er. De sorte que 0xAB802453 devienne 0x2453AB80 (c pour un codage).
J'extrait la partie haute et la partie basse comme dans mon 1er post, mais, et après ?


 
Ba euh... ajoute-les ? :heink:


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 12-12-2002 à 11:47:41    

Taiche a écrit :


 
Ba euh... ajoute-les ? :heink:


 
Ben, non. Dans ce cas, les ajouter, ça va faire le même chose qu'un OU binaire : ça va reconstituer mon chiffre d'origine sans inverser quoi que ce soit !

Reply

Marsh Posté le 12-12-2002 à 11:49:52    

Ah oké, d'accord. Bin fais un décalage de bits, alors, via les opérateurs >> et <<


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 12-12-2002 à 11:55:41    

Taiche a écrit :

Ah oké, d'accord. Bin fais un décalage de bits, alors, via les opérateurs >> et <<


 
Ouais, c'est surement ça, mais j'arrive pas à voir le truc.
Là j'ai fais ça :

Code :
  1. long lHighPart = _l & 0xFFFF0000;
  2.     cout << "\nHighPart : " << lHighPart;
  3.     long lLowPart  = _l & 0x0000FFFF;
  4.     cout << "\nLowPart  : " << lLowPart;
  5.     long lToReturn = lHighPart << 16;
  6.     lToReturn     |= lLowPart;


 
ms je sais que c une connerie... :sweat:

Reply

Marsh Posté le 12-12-2002 à 11:58:37    

El_Gringo a écrit :


 
Ouais, c'est surement ça, mais j'arrive pas à voir le truc.
Là j'ai fais ça :

Code :
  1. long lHighPart = _l & 0xFFFF0000;
  2.     cout << "\nHighPart : " << lHighPart;
  3.     long lLowPart  = _l & 0x0000FFFF;
  4.     cout << "\nLowPart  : " << lLowPart;
  5.     long lToReturn = lHighPart << 16;
  6.     lToReturn     |= lLowPart;


 
ms je sais que c une connerie... :sweat:  


 
Pourquoi tu décales de 16 ? Décale de 8, ça suffit, nan ?
 
EDIT : ah nan, j'ai menti :D Bin en tout cas, t'oublies un morceau :
long lToReturn = (lHighPart << 16) + (lLowPart >> 16);


Message édité par Taiche le 12-12-2002 à 12:07:47

---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 12-12-2002 à 12:08:09    

Taiche a écrit :


 
Pourquoi tu décales de 16 ? Décale de 8, ça suffit, nan ?


 
C'est sur 32 bits un int...
Mais j'ai la solution :
http://forum.hardware.fr/forum2.ph [...] ubcat=#bas
C'est pas si loin de mon truc...

Reply

Marsh Posté le 12-12-2002 à 12:10:56    

Bon, j'viens d'faire un prog rapide pour tester. Alors le code que j'ai fait et qui marche pas mal c'est :

Code :
  1. int a = 8748530; // 857DF2;
  2.        
  3.         int aLow = a & 0x0000FFFF;
  4.         int aHigh = a & 0xFFFF0000;
  5.         System.out.println(Integer.toHexString(aLow) + " ; " + Integer.toHexString(aHigh));
  6.         aLow = aLow << 16;
  7.         aHigh = aHigh >> 16;
  8.         System.out.println(Integer.toHexString(aLow) + " ; " + Integer.toHexString(aHigh));


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 12-12-2002 à 12:21:22    

c'était déja bon sur le topic parallèle.  
Merci...

Reply

Marsh Posté le 12-12-2002 à 12:24:26    

El_Gringo a écrit :

c'était déja bon sur le topic parallèle.  
Merci...


 
Nan, c'était bon après ; j'ai posté à 12h10 et l'autre à 12h17  [:xp1700]  
 
/me pawa :sol:


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed