Java(script) - Opérateur Xor (^)
Fermé
charpentier3
Messages postés
34
Date d'inscription
samedi 25 décembre 2010
Statut
Membre
Dernière intervention
9 mars 2012
-
26 févr. 2012 à 17:29
charpentier3 Messages postés 34 Date d'inscription samedi 25 décembre 2010 Statut Membre Dernière intervention 9 mars 2012 - 27 févr. 2012 à 20:32
charpentier3 Messages postés 34 Date d'inscription samedi 25 décembre 2010 Statut Membre Dernière intervention 9 mars 2012 - 27 févr. 2012 à 20:32
A voir également:
- Xor java
- Waptrick java football - Télécharger - Jeux vidéo
- Jeux java itel football - Télécharger - Jeux vidéo
- Java apk - Télécharger - Langages
- Java bible - Forum Téléchargement
- Jeux java itel touche ✓ - Forum Logiciels
6 réponses
Bonjour
1 - Pour calculer t^z, javascript commence par traduire t en nombre (car ce n'en est pas un au départ). Et comme "c" n'est pas un nombre, il trouve 0. Et comme zéro ou exclusif quelque chose = ce même quelque chose, il retrouve e=0x7c.
Essaye en modifiant t="0xc", comme 0xc est un nombre, cette fois le résultat sera différent (0xc ^ 0x7c = 0x70 =112)
2 - Pour afficher le caractère correspondant au résultat, utilise la méthode (statique) de l'objet String de javascript:
voir http://www.w3schools.com/jsref/jsref_fromcharcode.asp
1 - Pour calculer t^z, javascript commence par traduire t en nombre (car ce n'en est pas un au départ). Et comme "c" n'est pas un nombre, il trouve 0. Et comme zéro ou exclusif quelque chose = ce même quelque chose, il retrouve e=0x7c.
Essaye en modifiant t="0xc", comme 0xc est un nombre, cette fois le résultat sera différent (0xc ^ 0x7c = 0x70 =112)
2 - Pour afficher le caractère correspondant au résultat, utilise la méthode (statique) de l'objet String de javascript:
document.write("e = "+e + " " + String.fromCharCode(e));
voir http://www.w3schools.com/jsref/jsref_fromcharcode.asp
charpentier3
Messages postés
34
Date d'inscription
samedi 25 décembre 2010
Statut
Membre
Dernière intervention
9 mars 2012
26 févr. 2012 à 20:14
26 févr. 2012 à 20:14
Cela donnerait-il le même résultat si l'on définissait une chaîne de caractère String en Java ?
Exemple :
Une chaîne string chaine="chaine";
Avec, par exemple, une boucle de concaténation (à priori) :
On aurait alors chaque fois une série de "124" qui se suivent ?
Exemple :
Une chaîne string chaine="chaine";
Avec, par exemple, une boucle de concaténation (à priori) :
for(i=0;i<chaine.lenght;i++) { une new string chaine2; et une expression : chaine2=(char)(chaine.charAt(i)^0x7c).toString(); }
On aurait alors chaque fois une série de "124" qui se suivent ?
Pas la moindre idée. Je ne connais rien du tout au java, qui n'a (faut-il le rappeler ?) strictement aucun rapport avec javascript.
Je doute quand même que length s'écrive lenght en java.
J'avais répondu à ton premier message en pensant uniquement à javascript, je n'avais pas lu assez attentivement pour remarquer que tu parlais des deux.
Je doute quand même que length s'écrive lenght en java.
J'avais répondu à ton premier message en pensant uniquement à javascript, je n'avais pas lu assez attentivement pour remarquer que tu parlais des deux.
charpentier3
Messages postés
34
Date d'inscription
samedi 25 décembre 2010
Statut
Membre
Dernière intervention
9 mars 2012
27 févr. 2012 à 14:31
27 févr. 2012 à 14:31
Ça s'écrit effectivement length, c'est une erreur de ma part. Mon premier message concernait effectivement Javascript, mais je vous remercie pour votre aide, cela m'a permis d'avancer.
Bonne journée : )
Si quelqu'un d'autre pouvait m'aider pour le Java, ce serait sympa : )
Bonne journée : )
Si quelqu'un d'autre pouvait m'aider pour le Java, ce serait sympa : )
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 018
27 févr. 2012 à 15:45
27 févr. 2012 à 15:45
Pourquoi demander comment ça ferait en Java, alors qu'il suffit de tester pour le savoir ?
Contrairement au Javascript, le langage Java a un typage fort, on ne peut donc pas mélanger caractères, entiers et chaînes de caractères n'importe comment !
Du coup les effets de bord du genre «comme "c" n'est pas un nombre, il trouve 0», ne sont pas reproductibles, car Java imposera que 'c' soit un caractère, qu'il pourra le convertir en entier, et qui ne vaudra donc pas toujours 0...
Mais je le répète, il suffisait de tester pour s'en rendre compte !
Contrairement au Javascript, le langage Java a un typage fort, on ne peut donc pas mélanger caractères, entiers et chaînes de caractères n'importe comment !
Du coup les effets de bord du genre «comme "c" n'est pas un nombre, il trouve 0», ne sont pas reproductibles, car Java imposera que 'c' soit un caractère, qu'il pourra le convertir en entier, et qui ne vaudra donc pas toujours 0...
Mais je le répète, il suffisait de tester pour s'en rendre compte !
public static void main(String...args) { String chaine = "Hello World !"; int z = 0x7c; for (char t : chaine.toCharArray()) { int e = t ^ z; System.out.printf("%d\t%c\n",e,e); } }
charpentier3
Messages postés
34
Date d'inscription
samedi 25 décembre 2010
Statut
Membre
Dernière intervention
9 mars 2012
27 févr. 2012 à 18:05
27 févr. 2012 à 18:05
Donc, si je comprend bien, le premier caractère de la chaîne "Hello World !", le "H" sera converti en entier décimal 72 par exemple. Et le résultat de l'opérateur de comparaison pour ce premier caractère serait alors :
01001000 H
^01111100 (0x7C)
_________
00110100 le caractère 4 ?
Mais quel logiciel peut-on utiliser pour taper du code Java et le tester ?
01001000 H
^01111100 (0x7C)
_________
00110100 le caractère 4 ?
Mais quel logiciel peut-on utiliser pour taper du code Java et le tester ?
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 018
Modifié par KX le 27/02/2012 à 18:23
Modifié par KX le 27/02/2012 à 18:23
Oui, c'est ça, tu obtiendras '4'.
Pour taper du code Java, il te suffit d'un bloc-notes (on peut aussi utiliser un IDE)
Par contre il te faut la JDK derrière pour pouvoir compiler le code, avant de l'exécuter.
Pour taper du code Java, il te suffit d'un bloc-notes (on peut aussi utiliser un IDE)
Par contre il te faut la JDK derrière pour pouvoir compiler le code, avant de l'exécuter.
charpentier3
Messages postés
34
Date d'inscription
samedi 25 décembre 2010
Statut
Membre
Dernière intervention
9 mars 2012
27 févr. 2012 à 20:32
27 févr. 2012 à 20:32
OK, un grand merci ! : )