Le "et" (&) binaire en C#
Répondre à la discussion
Affichage des résultats 1 à 3 sur 3

Le "et" (&) binaire en C#



  1. #1
    chess_yuss

    Le "et" (&) binaire en C#


    ------

    Salut,

    je ne comprends pas trop comment fonctionne le et binaire en c#. Je sais ce qu'il fait normalement, mais dans cet exemple-là j'ai du mal à comprendre :

    Code:
                int n = 57;
                Console.WriteLine("Le bit de position 0 dans {0} vaut {1}", n, (n >> 0) & 1);
                Console.WriteLine("Le bit de position 1 dans {0} vaut {1}", n, (n >> 1) & 1);
    C'est un programme qui identifie les composantes en base 2 d'un nombre, pour la première ligne il affiche 1 et pour la 2ème 0, je comprends que les >> se reportent à la position, mais je ne comprends pas comment le & binaire fait pour donner la valeur.

    Merci pour votre aide.

    -----

  2. #2
    invite4492c379

    Re : Le "et" (&) binaire en C#

    Hello,

    en fait c'est pas très compliqué

    le et binaire a une table simple :

    a\b 0 1
    0 0 0
    1 0 1
    on remarque que a & 1 = a et que a & 0 = 0
    donc quand tu fais [b7b6b5b4b3b2b1b0]2 & [00000001]2 bit à bit ça donne :

    b7 b6 b5 b4 b3 b2 b1 b0
    & 0 0 0 0 0 0 0 1
    0 0 0 0 0 0 0 b0

    en gros le & 1 est pour ne garder que le bit de poids le plus faible

  3. #3
    invite4492c379

    Re : Le "et" (&) binaire en C#

    En te relisant je me rends compte que tu ne saisis peut être pas la notion de décalage. b >> n décale de n positions vers la droite le nombre b en écriture binaire :

    [b7b6b5b4b3b2b1b0]2 >> 2 = [00b7b6b5b4b3b2]2

    & 1 garde le bit le plus à droite :

    ( [b7b6b5b4b3b2b1b0]2 >> 2 ) & 1 = b2

    Remarques :
    a >> 0 = a
    a >> n est la partie entière de a/2n

Discussions similaires

  1. "Informatique fondamentale" : système binaire...
    Par babaz dans le forum Logiciel - Software - Open Source
    Réponses: 23
    Dernier message: 21/02/2010, 15h32
  2. Modulation BPSK , rapport entre "debit de symbole" et "debit binaire" ?
    Par invite060b200d dans le forum Électronique
    Réponses: 3
    Dernier message: 06/11/2009, 15h36