Overflow en C !
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

Overflow en C !



  1. #1
    invite363c0a61

    Overflow en C !


    ------

    Bonjour à tous,

    Je voudrais savoir quelle est la borne supérieure effective d'une variable de type "double" en C.
    Un double est représenté sur 8 octets, donc on peut très bien majorer sa valeur. Seulement, j'ai écris un programme calculant les termes d'une suite qui, lorsque je l'écris entièrement par moi-même met en évidence l'overflow! Mais lorsque j'utilise des fonctions de la bibliothèque <math.h> donne des valeurs qui dépassent largement la précision d'un double (pour sûr, car je me retrouve parfois un nombre écris sur une ligne et demie de la cmd qui fait 140*54).

    Pardon si c'est un secret de polichinelle. Mais j'aimerais bien qu'on m'éclaire sur ce point!
    Merci.

    -----

  2. #2
    jiherve

    Re : Overflow en C !

    Bonjour,
    un double c'est effectivement 64 bits et lorsque cela déborde cela est testable par contre il existe des codages dépassant ce nombre de bits.
    Sur quelle machine ?
    JR
    l'électronique c'est pas du vaudou!

  3. #3
    pm42

    Re : Overflow en C !

    En fait, la norme est très permissive sur le double en C.

    https://en.wikipedia.org/wiki/C_data_types

    La plupart du temps, cela va être : https://en.wikipedia.org/wiki/Double...g-point_format

    Les limites sont en général définies : http://en.cppreference.com/w/c/types/limits

  4. #4
    invite936c567e

    Re : Overflow en C !

    Bonjour

    Comme le rappelle pm42, la précision du type double peut dépendre de la plateforme de développement. Par exemple, il arrive que le type double corresponde juste au type float (voir avr-gcc par exemple).

    Par ailleurs, lorsque le matériel et le compilateur le permettent, les calculs portant sur des variables de type double peuvent être menés avec une précision supérieure à celle correspondant normalement au stockage de ces variables. Par exemple, sur une unité x87, des calculs peuvent être menés de bout en bout sur 80 bits (dont 63 bits de mantisse) alors que les données de départ et les résultats sont des double sur 64 bits (dont 52 bits de mantisse).

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

    Re : Overflow en C !

    Merci à vous...
    Machine : HP ProBook 4540s

    En fait, je fais une suite récurrente. Quand j'utilise la fonction pow(.,.) de <math.h> mon programme fonctionne sur de très très grands nombres. Mais quand j'opère la récurrence par mes méthodes, ça fait très vite l'overflow!
    Et puis merci pour les pages, j'en avais bavé avec les format specifiers!!

  7. #6
    inviteb9f49292

    Re : Overflow en C !

    Dès qu'on commence à s'amuser sérieusement avec les nombres flottants, il faut absolument aller lire ce papier.

Discussions similaires

  1. [Numérique] Formule de debordement/overflow ?
    Par invite6a95af8b dans le forum Électronique
    Réponses: 14
    Dernier message: 19/02/2017, 19h06
  2. 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
  3. 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
  4. " Attaque RPC D COM BUFFER OVERFLOW" ou "Attaque LSASS..."
    Par invite17257e81 dans le forum Internet - Réseau - Sécurité générale
    Réponses: 11
    Dernier message: 09/07/2004, 09h25