Comment est l'état de travail avec des opérateurs bit par bit?

J'ai essayé de comprendre comment, si la condition de travailler avec les opérateurs au niveau du bit.
Une façon de vérifier si un nombre est pair ou impair peut être fait par:

#include <iostream>
#include <string>
using namespace std;

string test()
{
    int i = 8;  //a number
    if(i & 1)
      return "odd";

    else
      return "even";       
}

int main ()
{
  cout << test();
  return 0;
}

La Partie que je ne comprends pas, c'est comment la si la condition de travail. Dans ce cas, si i = 8 alors la dans Si l'état il est en train de faire 1000 & 1 qui devrait redonne 1000 qui égale 8.

Si i = 7, puis dans si l'état qu'elle doit faire 111 & 1 qui donne en retour, 111, ce qui égale 7

Pourquoi est-ce le cas que si(8) sera de retour "même" et si(7) le retour de "bizarre"? Je suppose que je veux comprendre ce que l'instruction if vérifie pour être Vrai et du Faux lorsque vous traitez avec des opérateurs bit par bit.

Juste Une pensée quand j'ai écrit cette question est en bas, parce que c'est en train de faire

for 8: 1000 & 0001 which gives 0
for 7: 0111 & 0001 which gives 1?
  • Votre présomptions sur ce x & y retour sont mauvais.
  • "ce que l'instruction if vérifie pour être Vrai et du Faux lorsque vous traitez avec des opérateurs bit par bit." - condition de la vérification juste se soucie le résultat final, mais jamais à la façon dont il est calculé.
  • & est au niveau du bit. 1000 est 1111101000, tandis que 1 est 1. 1111101000 & 1 est 0, donc c'est faux.
  • Je vous assure, sur les pas de système est décimal 8 représentée comme 1111101000. Sur presque tous les systèmes, il est 00001000.
  • Je reçois la nette impression que vous êtes à la traîne. Ce n'est pas la première fois que vous avez répondu à un commentaire de la mine dans un tout façon absurde.
  • Votre premier commentaire n'a aucun sens. Pourriez-vous la reformuler?
  • Il est probable que le nombre de mille (1000 en décimal) est 1111101000 en binaire.
  • Je ne vois pas comment le nombre mille est pertinente ici, car les exemples d'utilisation de sept et huit.

InformationsquelleAutor user1655072 | 2012-10-24