Partage
  • Partager sur Facebook
  • Partager sur Twitter

calcul simple sur binaire en c2n

    19 octobre 2021 à 23:28:14

    Bonjour,

    Bonjour à tous,

    C'est mon premier message, j'ignore s'il fallait que je me présente avant mais je tente pas ma chance quand même.

    J'ai une addition sur des binaires exprimées en complément à 2 n sur 4 bits.

    0111 + 1011

    Je sais que 0111 vaut +7 en base10 et que 1011 vaut -5 en base10.

    Je m'attends donc à trouver +2 càd 0010 en c2n .

    Je trouve 10010, ce qui revient à dire que le résultat est faux (dépassement de capacité). Si une bonne âme peut m'expliquer ce que je n'ai pas compris ?

    En c2n, sur 4 bits,  nombre ∈ [-8,+7] non ?

    ------------------------------------------------ (30 min après)

    ok, j'ai compris. Pas de dépassement possible pour une addition sur des signes opposés...

    -
    Edité par GeoffreyMorlet 22 octobre 2021 à 0:09:53

    • Partager sur Facebook
    • Partager sur Twitter
      21 octobre 2021 à 2:49:44

      Si tu as un registre de 4 bits, le 5ième bit n'existe pas. Tu l'oublies.
      Tu as mal fait ton addition ...
      Donc 0111 + 1011 = 0010  =>  +7 + -5 = +2
      Pour trouver le complément à 2, deux façons:
      2^largeur - nombre  =>  16 - 5 = 13  => 1011
      ou bien:
      tu part de la droite et tu sautes tous les 0 jusqu'au premier 1.
      tu le saute également et tu inverses tous les autres à la gauche
      -6 = -0110
            1010
      • Partager sur Facebook
      • Partager sur Twitter

      Le Tout est souvent plus grand que la somme de ses parties.

        22 octobre 2021 à 0:06:20

        Merci pour ta réponse, sur le 5ième bit qui effectivement n'existe pas dans le cas présent, et qu'il faut oublier, il est toutefois pris en compte par la machine qui nous retournera un message d'erreur pour calcul impossible,

        si tu additionnes (toujours sur un registre de 4 bits et en c2n),

        mettons 1001 + 1010 (-7 + (-6) ),

        le résultat (faux en machine ou sur une feuille de papier) sera 10011 en machine.

        On sort peut-être des mathématiques (c'est sûr même), pour aller sur des considérations liées à l'architecture des ordinateurs et leur façon de nous retourner des messages d'erreur quand on lui demande de calculer des trucs débiles. Ici, dans mon exemple, le bit de poids fort à 1 pour le résultat signifie qu'on est en dépassement de format. Le calcul est impossible, il n'y aura pas de résultat. Ce qui rejoint ce que tu dis sur le 5ième bit qu'il faut oublier.

        Je ne sais pas si je suis clair ou si tu vois où je voulais en venir avec mon dépassement de format ?

        • Partager sur Facebook
        • Partager sur Twitter
          22 octobre 2021 à 0:48:10

          Le problème est que si on a un registre de 4 bits et qu'on suppose un bit de signe,
          on aura des nombres de -8 jusqu'à +7
          Mais chose étrange, je ne peux pas représenter +8
          Ainsi -7 + -6 donne -13 qui ne peut pas se représenter dans 4 bits.
          Dans ce cas, certaines machines allument un bit "overflow" ou "dépassement"
          on peut dire qu'en pratique qu'on peut représenter des nombres entre -7 et +7 sur un registre signé de 4 bits.
          • Partager sur Facebook
          • Partager sur Twitter

          Le Tout est souvent plus grand que la somme de ses parties.

          calcul simple sur binaire en c2n

          × 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.
          • Editeur
          • Markdown