j'aimerais savoir comment avoir l'équivalent en java de la fonction C
<printf("%x",...)>.
Car, Dans un petit programme je lis un fichier et dois afficher chaque octet
en hexadécimal.
Ce que j'ai fais et qui n'a pas l'air de marcher et qui est de mettre les
données dans un tableau de byte puis de décomposer
chaque octet du tableau comme suis :
[..]
// Séléction, ouverture et lecture du fichier par
<RandomAccessFile.readFully(...)> qui place les données dans tableau de byte
nomé <data>
[..]
// affichage des données du fichier
for(int i=0; i<data.length; i++) {
System.out.println( hexa[ data[i]>>4 ] + hexa[ data[i] & 0x0f ]) ;
// c'est la que c'est pas bon, pourqoi ????
}
}
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Xavier
Salut,
Regarde du côté de toHexString() :
new Integer(b).toHexString()
Xavier
"acc" a écrit dans le message de news:41387751$0$326$
Bonjour,
j'aimerais savoir comment avoir l'équivalent en java de la fonction C <printf("%x",...)>. Car, Dans un petit programme je lis un fichier et dois afficher chaque octet
en hexadécimal.
Ce que j'ai fais et qui n'a pas l'air de marcher et qui est de mettre les données dans un tableau de byte puis de décomposer chaque octet du tableau comme suis :
[..] // Séléction, ouverture et lecture du fichier par <RandomAccessFile.readFully(...)> qui place les données dans tableau de byte
nomé <data> [..]
// affichage des données du fichier for(int i=0; i<data.length; i++) { System.out.println( hexa[ data[i]>>4 ] + hexa[ data[i] & 0x0f ]) ; // c'est la que c'est pas bon, pourqoi ???? } }
Merci par avance de m'orienter.
Stéphane.
Salut,
Regarde du côté de toHexString() :
new Integer(b).toHexString()
Xavier
"acc" <acc@btm-paris.com> a écrit dans le message de
news:41387751$0$326$4d4eb98e@read.news.fr.uu.net...
Bonjour,
j'aimerais savoir comment avoir l'équivalent en java de la fonction C
<printf("%x",...)>.
Car, Dans un petit programme je lis un fichier et dois afficher chaque
octet
en hexadécimal.
Ce que j'ai fais et qui n'a pas l'air de marcher et qui est de mettre les
données dans un tableau de byte puis de décomposer
chaque octet du tableau comme suis :
[..]
// Séléction, ouverture et lecture du fichier par
<RandomAccessFile.readFully(...)> qui place les données dans tableau de
byte
nomé <data>
[..]
// affichage des données du fichier
for(int i=0; i<data.length; i++) {
System.out.println( hexa[ data[i]>>4 ] + hexa[ data[i] & 0x0f ]) ;
// c'est la que c'est pas bon, pourqoi ????
}
}
"acc" a écrit dans le message de news:41387751$0$326$
Bonjour,
j'aimerais savoir comment avoir l'équivalent en java de la fonction C <printf("%x",...)>. Car, Dans un petit programme je lis un fichier et dois afficher chaque octet
en hexadécimal.
Ce que j'ai fais et qui n'a pas l'air de marcher et qui est de mettre les données dans un tableau de byte puis de décomposer chaque octet du tableau comme suis :
[..] // Séléction, ouverture et lecture du fichier par <RandomAccessFile.readFully(...)> qui place les données dans tableau de byte
nomé <data> [..]
// affichage des données du fichier for(int i=0; i<data.length; i++) { System.out.println( hexa[ data[i]>>4 ] + hexa[ data[i] & 0x0f ]) ; // c'est la que c'est pas bon, pourqoi ???? } }
Merci par avance de m'orienter.
Stéphane.
YSMAL Vincent
Bonjour, et un simple : System.out.println(Integer.toHexString(data[i])); ne suffirait-il pas ?
"acc" a écrit dans le message de news:41387751$0$326$
Bonjour,
j'aimerais savoir comment avoir l'équivalent en java de la fonction C <printf("%x",...)>. Car, Dans un petit programme je lis un fichier et dois afficher chaque octet
en hexadécimal.
Ce que j'ai fais et qui n'a pas l'air de marcher et qui est de mettre les données dans un tableau de byte puis de décomposer chaque octet du tableau comme suis :
[..] // Séléction, ouverture et lecture du fichier par <RandomAccessFile.readFully(...)> qui place les données dans tableau de byte
nomé <data> [..]
// affichage des données du fichier for(int i=0; i<data.length; i++) { System.out.println( hexa[ data[i]>>4 ] + hexa[ data[i] & 0x0f ]) ; // c'est la que c'est pas bon, pourqoi ???? } }
Merci par avance de m'orienter.
Stéphane.
Bonjour,
et un simple : System.out.println(Integer.toHexString(data[i]));
ne suffirait-il pas ?
"acc" <acc@btm-paris.com> a écrit dans le message de
news:41387751$0$326$4d4eb98e@read.news.fr.uu.net...
Bonjour,
j'aimerais savoir comment avoir l'équivalent en java de la fonction C
<printf("%x",...)>.
Car, Dans un petit programme je lis un fichier et dois afficher chaque
octet
en hexadécimal.
Ce que j'ai fais et qui n'a pas l'air de marcher et qui est de mettre les
données dans un tableau de byte puis de décomposer
chaque octet du tableau comme suis :
[..]
// Séléction, ouverture et lecture du fichier par
<RandomAccessFile.readFully(...)> qui place les données dans tableau de
byte
nomé <data>
[..]
// affichage des données du fichier
for(int i=0; i<data.length; i++) {
System.out.println( hexa[ data[i]>>4 ] + hexa[ data[i] & 0x0f ]) ;
// c'est la que c'est pas bon, pourqoi ????
}
}
Bonjour, et un simple : System.out.println(Integer.toHexString(data[i])); ne suffirait-il pas ?
"acc" a écrit dans le message de news:41387751$0$326$
Bonjour,
j'aimerais savoir comment avoir l'équivalent en java de la fonction C <printf("%x",...)>. Car, Dans un petit programme je lis un fichier et dois afficher chaque octet
en hexadécimal.
Ce que j'ai fais et qui n'a pas l'air de marcher et qui est de mettre les données dans un tableau de byte puis de décomposer chaque octet du tableau comme suis :
[..] // Séléction, ouverture et lecture du fichier par <RandomAccessFile.readFully(...)> qui place les données dans tableau de byte
nomé <data> [..]
// affichage des données du fichier for(int i=0; i<data.length; i++) { System.out.println( hexa[ data[i]>>4 ] + hexa[ data[i] & 0x0f ]) ; // c'est la que c'est pas bon, pourqoi ???? } }
Merci par avance de m'orienter.
Stéphane.
jlp
acc wrote:
Bonjour,
j'aimerais savoir comment avoir l'équivalent en java de la fonction C <printf("%x",...)>. Car, Dans un petit programme je lis un fichier et dois afficher chaque octet en hexadécimal.
Ce que j'ai fais et qui n'a pas l'air de marcher et qui est de mettre les données dans un tableau de byte puis de décomposer chaque octet du tableau comme suis :
[..] // Séléction, ouverture et lecture du fichier par <RandomAccessFile.readFully(...)> qui place les données dans tableau de byte nomé <data> [..]
// affichage des données du fichier for(int i=0; i<data.length; i++) { System.out.println( hexa[ data[i]>>4 ] + hexa[ data[i] & 0x0f ]) ; // c'est la que c'est pas bon, pourqoi ???? } }
Merci par avance de m'orienter.
Stéphane.
printf ajouté à la version 5 ( ex 1.5 ) de java en RC1 actuellement.
acc wrote:
Bonjour,
j'aimerais savoir comment avoir l'équivalent en java de la fonction C
<printf("%x",...)>.
Car, Dans un petit programme je lis un fichier et dois afficher chaque octet
en hexadécimal.
Ce que j'ai fais et qui n'a pas l'air de marcher et qui est de mettre les
données dans un tableau de byte puis de décomposer
chaque octet du tableau comme suis :
[..]
// Séléction, ouverture et lecture du fichier par
<RandomAccessFile.readFully(...)> qui place les données dans tableau de byte
nomé <data>
[..]
// affichage des données du fichier
for(int i=0; i<data.length; i++) {
System.out.println( hexa[ data[i]>>4 ] + hexa[ data[i] & 0x0f ]) ;
// c'est la que c'est pas bon, pourqoi ????
}
}
Merci par avance de m'orienter.
Stéphane.
printf ajouté à la version 5 ( ex 1.5 ) de java en RC1 actuellement.
j'aimerais savoir comment avoir l'équivalent en java de la fonction C <printf("%x",...)>. Car, Dans un petit programme je lis un fichier et dois afficher chaque octet en hexadécimal.
Ce que j'ai fais et qui n'a pas l'air de marcher et qui est de mettre les données dans un tableau de byte puis de décomposer chaque octet du tableau comme suis :
[..] // Séléction, ouverture et lecture du fichier par <RandomAccessFile.readFully(...)> qui place les données dans tableau de byte nomé <data> [..]
// affichage des données du fichier for(int i=0; i<data.length; i++) { System.out.println( hexa[ data[i]>>4 ] + hexa[ data[i] & 0x0f ]) ; // c'est la que c'est pas bon, pourqoi ???? } }
Merci par avance de m'orienter.
Stéphane.
printf ajouté à la version 5 ( ex 1.5 ) de java en RC1 actuellement.
azubi
Bonjour,
j'aimerais savoir comment avoir l'équivalent en java de la fonction C <printf("%x",...)>. Car, Dans un petit programme je lis un fichier et dois afficher chaque octet en hexadécimal.
Ce que j'ai fais et qui n'a pas l'air de marcher et qui est de mettre les données dans un tableau de byte puis de décomposer chaque octet du tableau comme suis :
[..] // Séléction, ouverture et lecture du fichier par <RandomAccessFile.readFully(...)> qui place les données dans tableau de byte nomé <data> [..]
// affichage des données du fichier for(int i=0; i<data.length; i++) { System.out.println( hexa[ data[i]>>4 ] + hexa[ data[i] & 0x0f ]) ; // c'est la que c'est pas bon, pourqoi ???? } }
les réponses données par les autres lecteurs de ce forum sont sûrement plus efficaces et plus intelligentes que la mienne... mais je voulais comprendre pourquoi cet exemple ne fonctionnait pas...
en fait les bytes en Java sont signés, donc par exemple -3 >> 4 va donner -1... allez donc savoir à quel caractère correspond hexa[-1] ?? Si on désire vraiment persister dans la voie que vous avez emprunté, je suppose qu'il devrait suffire d'écrire
bon ok, c'est pas vraiment propre, mais au moins c'est rigolo..
bonne soirée
Merci par avance de m'orienter.
Stéphane.
Bonjour,
j'aimerais savoir comment avoir l'équivalent en java de la fonction C
<printf("%x",...)>.
Car, Dans un petit programme je lis un fichier et dois afficher chaque
octet en hexadécimal.
Ce que j'ai fais et qui n'a pas l'air de marcher et qui est de mettre les
données dans un tableau de byte puis de décomposer
chaque octet du tableau comme suis :
[..]
// Séléction, ouverture et lecture du fichier par
<RandomAccessFile.readFully(...)> qui place les données dans tableau de
byte nomé <data>
[..]
// affichage des données du fichier
for(int i=0; i<data.length; i++) {
System.out.println( hexa[ data[i]>>4 ] + hexa[ data[i] & 0x0f ]) ;
// c'est la que c'est pas bon, pourqoi ????
}
}
les réponses données par les autres lecteurs de ce forum sont sûrement plus
efficaces et plus intelligentes que la mienne... mais je voulais comprendre
pourquoi cet exemple ne fonctionnait pas...
en fait les bytes en Java sont signés, donc par exemple -3 >> 4 va donner
-1... allez donc savoir à quel caractère correspond hexa[-1] ?? Si on
désire vraiment persister dans la voie que vous avez emprunté, je suppose
qu'il devrait suffire d'écrire
j'aimerais savoir comment avoir l'équivalent en java de la fonction C <printf("%x",...)>. Car, Dans un petit programme je lis un fichier et dois afficher chaque octet en hexadécimal.
Ce que j'ai fais et qui n'a pas l'air de marcher et qui est de mettre les données dans un tableau de byte puis de décomposer chaque octet du tableau comme suis :
[..] // Séléction, ouverture et lecture du fichier par <RandomAccessFile.readFully(...)> qui place les données dans tableau de byte nomé <data> [..]
// affichage des données du fichier for(int i=0; i<data.length; i++) { System.out.println( hexa[ data[i]>>4 ] + hexa[ data[i] & 0x0f ]) ; // c'est la que c'est pas bon, pourqoi ???? } }
les réponses données par les autres lecteurs de ce forum sont sûrement plus efficaces et plus intelligentes que la mienne... mais je voulais comprendre pourquoi cet exemple ne fonctionnait pas...
en fait les bytes en Java sont signés, donc par exemple -3 >> 4 va donner -1... allez donc savoir à quel caractère correspond hexa[-1] ?? Si on désire vraiment persister dans la voie que vous avez emprunté, je suppose qu'il devrait suffire d'écrire
les réponses données par les autres lecteurs de ce forum sont sûrement plus
efficaces et plus intelligentes que la mienne... mais je voulais comprendre
pourquoi cet exemple ne fonctionnait pas...
en fait les bytes en Java sont signés, donc par exemple -3 >> 4 va donner -1... allez donc savoir à quel caractère correspond hexa[-1] ?? Si on désire vraiment persister dans la voie que vous avez emprunté, je suppose qu'il devrait suffire d'écrire
bon ok, c'est pas vraiment propre, mais au moins c'est rigolo..
bonne soirée
Non c'est pas moins intelligent que les autres, que je remercie au passage pour leurs réponses, et comme tu le soulignes justement c'est une question de signe. J'ai pas essayé <Math.abs(...)> car j'ai lu dans un autre fil (gestion de bytes, MSB, BCD) qu'il fallait masquer par 0xFF pour inhiber le signe et sa marche à ceci près qu'il faut aussi intégrer une chaine vide comme ceci dans le <.println(...+ "" +...)> sinon ça foire.
Merci.
Stéphane.
Bonsoir,
"azubi" <euler@hotmail.com> a écrit dans le message de
news:4138bba3_3@news.bluewin.ch...
ben pour commencer on peut déclarer ce tableau en écrivant simplement
les réponses données par les autres lecteurs de ce forum sont sûrement
plus
efficaces et plus intelligentes que la mienne... mais je voulais
comprendre
pourquoi cet exemple ne fonctionnait pas...
en fait les bytes en Java sont signés, donc par exemple -3 >> 4 va donner
-1... allez donc savoir à quel caractère correspond hexa[-1] ?? Si on
désire vraiment persister dans la voie que vous avez emprunté, je suppose
qu'il devrait suffire d'écrire
bon ok, c'est pas vraiment propre, mais au moins c'est rigolo..
bonne soirée
Non c'est pas moins intelligent que les autres, que je remercie au passage
pour leurs réponses, et comme tu le soulignes justement c'est une question
de signe.
J'ai pas essayé <Math.abs(...)> car j'ai lu dans un autre fil (gestion de
bytes, MSB, BCD) qu'il fallait masquer par 0xFF pour inhiber le signe et sa
marche à ceci près qu'il faut aussi intégrer une chaine vide comme ceci dans
le <.println(...+ "" +...)> sinon ça foire.
les réponses données par les autres lecteurs de ce forum sont sûrement plus
efficaces et plus intelligentes que la mienne... mais je voulais comprendre
pourquoi cet exemple ne fonctionnait pas...
en fait les bytes en Java sont signés, donc par exemple -3 >> 4 va donner -1... allez donc savoir à quel caractère correspond hexa[-1] ?? Si on désire vraiment persister dans la voie que vous avez emprunté, je suppose qu'il devrait suffire d'écrire
bon ok, c'est pas vraiment propre, mais au moins c'est rigolo..
bonne soirée
Non c'est pas moins intelligent que les autres, que je remercie au passage pour leurs réponses, et comme tu le soulignes justement c'est une question de signe. J'ai pas essayé <Math.abs(...)> car j'ai lu dans un autre fil (gestion de bytes, MSB, BCD) qu'il fallait masquer par 0xFF pour inhiber le signe et sa marche à ceci près qu'il faut aussi intégrer une chaine vide comme ceci dans le <.println(...+ "" +...)> sinon ça foire.