un produit de carbonisation est juste un nombre entier de 8 bits. Peu importe si vous l'avez initialisé avec un littéral hexadécimal ou décimal, dans les deux cas, la valeur du caractère sera la même après.
Alors:
char t = 0x4;
char q = 0x4;
if(t == q)
{
//They are the same
}
Il est équivalent à:
char t = 4;
char q = 4;
if(t == q)
{
//They are the same
}
Vous avez mentionné que ce qui précède n'est pas vrai, mais vous devez avoir une erreur dans votre code ou t et q ne doit pas être le même.
Ce que vous suggérez ...
si (t == q) // doit me donner le vrai mais non, aucune aide, merci!
n'est pas correct. Pourquoi?
t & q fait une opération de bits comparer, retournant une valeur où les deux bits sont alignés 1.
Le terme « si (t & q) » retournerait vrai tant que l'un des bits de t et q sont communs.
donc si t = 3 qui est en binaire 00000011 et q = 1 qui est en binaire 00000001 alors (t & q) retournera vrai même sachant qu'ils ne sont pas égaux.
Attendez, quelque chose ne va pas ici. Cela devrait, et exécute si branche du conditionnel. Nous avons besoin de plus de contexte. Votre réponse "a & b" n'est pas correcte - ce sera "vrai" pour tous les bits qui se chevauchent dans la représentation de a et b –
Cela devrait fonctionner. Pourquoi pensez-vous que non? –