[Numérique] Formule de debordement/overflow ?
Répondre à la discussion
Affichage des résultats 1 à 15 sur 15

Formule de debordement/overflow ?



  1. #1
    anto97

    Formule de debordement/overflow ?


    ------

    Bonjour,

    Je fait actuellement des études dans l'électronique, et j'ai une question à propos de la formule de débordement. De ce que j'ai compris, c'est la formule qui sert en cas d'addition de deux nombres sur n bits. Si la somme de ces deux nombres s'écrit sur n+1 bits, alors il y a débordement (ou overflow en anglais de ce que j'ai vu sur internet).

    Mon problème, c'est que j'aimerais bien avoir la formule de cela justement, celle qui nous renvoie 1 si il y a débordement et 0 sinon par exemple. J'ai cherché sur internet français, et rien trouvé, et sur internet en anglais, j'ai trouvé un seul site qui me donne deux formules:

    V = xk-1yk-1\sk-1 + \xk-1\yk-1sk-1 et V = ck-1 XOR ck-2 (source: http://www.cs.umd.edu/class/sum2003/.../overflow.html)

    Le problème est que je ne comprend ni l'une ni l'autre, même avec les explications, pour la deuxième par exemple, quand j'essaie de l'appliquer avec ce que j'ai compris je ne trouve rien de cohérent.

    Merci de votre aide.

    -----

  2. #2
    jiherve

    Re : Formule de debordement/overflow ?

    Bonjour et bienvenue,
    la seconde est très claire il suffit de faire un tableau mais d'autres l'ont déjà fait :http://www.c-jump.com/CIS77/CPU/Overflow/lecture.html
    JR
    l'électronique c'est pas du vaudou!

  3. #3
    satinas

    Re : Formule de debordement/overflow ?

    Bonjour,
    Si x et y sont de signes différents il n'y a pas overflow car il y a autant de nombres positifs que négatifs.
    xk-1yk-1\sk-1 est égal à 1 si x et y sont < 0 et s >= 0, overflow
    \xk-1\yk-1sk-1 est égal à 1 si x et y sont >= 0 et s < 0, overflow
    Les 2 cas étant exclusifs, leur somme fait 0 ou 1.
    Dernière modification par satinas ; 19/02/2017 à 17h43.

  4. #4
    anto97

    Re : Formule de debordement/overflow ?

    Merci de vos réponses !

    @jiherve

    Après avoir regardé le site, je m'apperçois que c'est en fait la table de vérité que j'ai du mal à comprendre.

    Nom : table-overflow.jpg
Affichages : 928
Taille : 37,9 Ko

    Pour être exact, c'est surtout quand je l'applique qu'il y a un problème pour moi, par exemple:

    101
    +011
    ---------
    1000

    Donc là j'ai overflow, et sur mon dernier calcul (donc la première colonne, pour calculer le MSB), j'ai: A=1; B=0; Carry In=1; Carry out=1 donc j'ai Carry In = Carry out donc normalement pas d'overflow d'après la formule. Du coup je crois que je n'ai pas du tout compris :/


    @satinas

    Ah je crois que j'ai compris la logique derrière cette formule, merci beaucoup ! Celle-ci était pas si compliquée en fait !

    Merci.
    Dernière modification par anto97 ; 19/02/2017 à 18h03.

  5. A voir en vidéo sur Futura
  6. #5
    anto97

    Re : Formule de debordement/overflow ?

    En fait même la première formule j'ai du mal avec la deuxième partie (la première est logique, si on additionne exactement deux 1 on part en overflow obligatoirement), mais la deuxième, je ne trouve pas: par exemple je veux faire:
    011
    +011
    ------
    110

    Donc pour la colonne de gauche, j'avais x=0, y=0 et s=1 donc d'après la formule (\xk-1\yk-1sk-1 surtout), je devrais avoir V = 1 et donc overflow, sauf que je ne l'ai pas là :/

  7. #6
    satinas

    Re : Formule de debordement/overflow ?

    Il n' y a pas overfow si tu ajoutes un nombre négatif 101 à un nombre positif 011.

  8. #7
    satinas

    Re : Formule de debordement/overflow ?

    Si tu ajoutes 2 nombres positifs, pas de problème tant que le résultat a son bit de poids fort à 0, le résultat est son toujours positif, dès qu'il passe à 1, il y a overflow, le processeur, pour lui positif, négatif c'est du pareil au même.

  9. #8
    jiherve

    Re : Formule de debordement/overflow ?

    Re
    attention au codage si c'est signé (complément à 2) il y a overlfow (le signe du resultat n'est pas celui commun aux des deux entrées) si c'est non signé il n'y a pas overflow avec ton exemple
    C'est bien expliqué sur le site.
    JR
    l'électronique c'est pas du vaudou!

  10. #9
    satinas

    Re : Formule de debordement/overflow ?

    Le bit carry le plus fort issu de l'addition (Sk), c'est l'overflow en addition non signée, pas en addition signée.

  11. #10
    anto97

    Re : Formule de debordement/overflow ?

    Ah oui d'accord, donc en signé on a overflow si on change de signe au final c'est ça ?

    Et du coup, en non signé, la formule change non ? Parce que si je code sur 4 bits en non signé et que je fait cette addition:

    1100
    +0111
    ---------
    10011

    Là mon résultat est codé sur 5 bits, donc je suis en overflow (vu qu'on ne prends pas en compte le signe, donc l'exception si les deux ont un signe différent ne fonctionne plus). Et ça correspondrait aux lignes 4 et 6 du tableau.

  12. #11
    satinas

    Re : Formule de debordement/overflow ?

    En addition non signée, je dirais
    V = Sk
    V = S < x || S < y

  13. #12
    anto97

    Re : Formule de debordement/overflow ?

    En relisant (encore) le site, on peut résumer: en signé, si c'est le même signe pour nos deux termes et que le terme de sortie n'est plus le même signe, alors on a overflow. En non signé, si on a carry out = 1 pour le MSB, alors overflow aussi (pour l'exemple que j'ai donné en haut). Du coup, le seul mystère qu'il reste à résoudre pour moi, c'est la dernière ligne du tableau en signé: Certes on obtient un nombre du même signe, donc pas d'overflow normalement, mais on le codera sur un bit de plus vu que carry out = 1 non ?

  14. #13
    satinas

    Re : Formule de debordement/overflow ?

    J'ai pas regardé les tableaux, mais tu veux pas transformer un processeur 32 bits en processeur 33 bits, par hasard ?

  15. #14
    jiherve

    Re : Formule de debordement/overflow ?

    re
    non car prenons -1 codé sur 8 bits = 1111 1111 + 1111 1111 =1 1111 1110 il y a bien une carry mais pas d'overflow car cela fait bien -2 les signes sont corrects.


    JR
    l'électronique c'est pas du vaudou!

  16. #15
    anto97

    Re : Formule de debordement/overflow ?

    Ah oui d'accord, merci à vous deux, je crois que je confondais carry et overflow en fait :/
    En tout cas, c'est beaucoup plus clair maintenant, je pense avoir compris la notion, grâce à vous deux, donc merci beaucoup ! Vous m'avez beaucoup aidé !

Discussions similaires

  1. Débordement de bac
    Par invite81809804 dans le forum Physique
    Réponses: 1
    Dernier message: 06/06/2012, 06h55
  2. Formule des Résidus (Formule de Martinelli ou Formule de Leray)
    Par klark dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 04/04/2010, 02h05
  3. Buffer Overflow avec Windows Media Player
    Par invite69f1c86a dans le forum Sécurité et malwares : désinfectez votre machine
    Réponses: 4
    Dernier message: 01/06/2009, 12h24
  4. Intrusion.Win.NETAPI.buffer-overflow.exploit
    Par invite533b878d dans le forum Internet - Réseau - Sécurité générale
    Réponses: 4
    Dernier message: 11/12/2008, 19h58
  5. Debordement
    Par invitef3f250c8 dans le forum Dépannage
    Réponses: 1
    Dernier message: 18/03/2006, 19h31
Découvrez nos comparatifs produits sur l'informatique et les technologies.