Quelle est l'opération inverse de niveau du bit?
Question
Comment puis-je obtenir a
de b
et c
? Quelle serait l'opération inverse?
Voici le code:
class s
{
public static void main(String ar[])
{
int a = 20;
int b = 5;
int c = 0;
c = (a & b) ;
System.out.println(c);
int d = (c & b);
System.out.println(d);
}
}
La solution
Vous ne pouvez pas. Si un bit c
est 0 et le bit correspondant dans b
est 0, il est impossible de savoir si le bit correspondant à a
était 0 ou 1. Par un argument similaire, opérateur OR (l'opérateur |
) est irréversible. D'autre part, XOR (opérateur de ^
) réversible.
Autres conseils
Si vous regardez la table de vérité de l'opération de and
logique, vous pouvez voir qu'il contient trois faux et un vrai. Par conséquent, il ne peut pas être inversée.
Seuls equals
et xor
ont des tables de vérité équilibrées, et ils sont les deux opérateurs booléens réversibles.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow