bomjours je suis tombe sur une formule assez bizzare dans un if .
par exemple :
int a;
cin>>a;
if(a&~077){ //je n'ai pas compris cet ligne
//ici execute une instruction
}
voila donc l'argument dans le if il veut dire quoi ? car j'ai tourne le probleme dans tous les sens je n'ai pas compris merci de m'aider , bonne soiree .
T'as qu'à faire des tests, je croix que la condition est vrai quand le 2ème nombre est le double du 1er nombre.
Par contre c'est bizarre quand je change le 077 en exemple 080 le debugueur me répond :
Une façon tordue d'écrire 0< ou >=64 ?
- ~, c'est l'inversion binaire (à vérifier, c'est le seul élément sur lequel j'ai un doute)
- 077 c'est de l'octal, soit 0x3f, ou 63, ou 111111 (binaire)
- &, c'est le ET binaire.
Donc, on teste si ton nombre et 11....111000000 ont des bits en commun. (Le nombre de '.' dépend de la capacité de int sur ta machine).
J'interprète donc le bouzin comme plus grand que 64, ou négatif.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
* Un wrapper C++ pour sqlite * Une alternative a boost units