Ou exclusif en java
Résolu
nour_master,
-
nour_master -
nour_master -
Bonjour,j cherche une methode en java qui me permet de faire un ou exclisif des chaines binaire:c.a.d
a partir des chaines " 01100001" XOr "01000110 avoir " 00100111" les chaine sont de int
avec l'operateur ^ c marche pas.
c qlq un peut m'aide.merci
a partir des chaines " 01100001" XOr "01000110 avoir " 00100111" les chaine sont de int
avec l'operateur ^ c marche pas.
c qlq un peut m'aide.merci
Configuration: Indeterminable Indeterminable
4 réponses
-
En fait ya plus simple.
parseInt peut prendre en deuxième paramètre la base du nombre :-)
Ici on veut de la base 2:
System.out.println(Integer.parseInt("11", 2)); //Affiche 3 -
Je comprends pas quand tu dis à partir des chaînes qui sont des int.
Soit c'est une chaîne (et ça explique pourquoi ça marche pas), soit ce sont des int, mais pas les deux à la fois.int a=5; int b=6; int c=a^b; //ou exclusif
Cdlt -
Eh bien dans ce cas, tu réalises une fonction qui convertit un String en binaire.
Ta fonction prendra en argument le String. Tu convertis tout d'abord le String en int, via la classe Integer.
Ensuite, tu parcours de la droite vers la gauche chacun des chiffres en multipliant par 2 puissance (son placement).
Ainsi tu vas reconstituer l'équivalent binaire.
Et tu renvois cette valeur là.
Et après tu pourras faire le Xor tranquillement.
Cdlt -
Comment ça il ne marche pas comme tu veux ?
Si tu veux traiter les String en binaire, faut faire comme je t'ai dit. Tu convertis d'abord en int via Integer.parseInt().
A cette étape tu auras 101000 (mais ça sera le nombre décimal). Il faut donc que tu le convertisses en équivalent binaire. Pour ça ça donne : 0 + 0*2 + 0*4 + 1*8 + 0*16 + 1*32 = 40.
Et là, tu pourras faire ton Xor.
Après, il faudra que tu fasses le travail inverse. Que tu convertisses en String (qui contient le binaire).
Cdlt