#include "func_parite.h"

// Renvoye 1 si le nombre de bit a 1 est impaire
//         0                             paire

bool parite1(int x,int val_parite)
{
  int  mask = 1;
  bool res  = ( (val_parite & mask) ^ mask); //si bit de poids faible ŕ zero alors parité pair
  
  while(x!=0)
    { 
      res ^= (x & mask);
      x = x >> 1;
    }
   
  return res;
}


extern unsigned int find_first_one (int x);

bool parite2(int x,int val_parite)
{
  unsigned int mask = 1;
  unsigned int pos;
  bool         res  = ( (val_parite & mask) ^ mask); //si bit de poids faible ŕ zero alors parité pair

  while ((pos = find_first_one(x)) != 0)
    {
      res ^= 1;
      x    = x >> pos;
    }
    
  return res;
}
