Articles intéressants à lire

Cour Supreme Israel  Denver International Airport  Symboles Occultes Bank of America  Georgia Guidestones  Saturne Occulte  Pyramide Blagnac  Le Rockefeller Center  Parlement UE  Symboles dans les logos  Sionisme Rothschild  Le billet d'un dollar  Cherchez l'erreur  Cathedrale Saint Jean le Divin  Le Projet Rivkin  La Fasces  La Nouvelle Aube Nouveau Jour en Image  Feu dans les Esprits des Hommes  Les 1000 points de lumiere  La Pierre de Bethel  La Main Cachee  Systeme Solaire  Aleister Crowley  Ordre des Illumines de Baviere  Qui est Baphomet  Illuminati New World Order  Introduction NWO

Pourquoi le nombre 2.147.483.647 peut tout faire buguer et rend fous les informaticiens

Pourquoi le nombre 2.147.483.647 peut tout faire buguer et rend fous les informaticiens

bug-info

L’explosion du vol du 4 juin 1996 (sans équipage) d’Ariane 5, la mort de 28 soldats américains lors de la guerre du Golfe, tués par un missile Scud irakien qu’un missile Patriot avait échoué à intercepter et le plantage du compteur de visionnages de YouTube par Gangnam Style ont la même origine.

La BBC écrit qu’il s’agit d’un bug informatique qui fait planter les programmes quand ils atteignent le nombre 2.147.483.647 (deux milliards cent quarante-sept millions quatre cent quatre-vingt-trois mille six cent quarante-sept). Ce nombre correspond à la valeur maximale programmée dans les microprocesseurs de 32-bits et, lorsque le programme atteint cette capacité maximale de stockage, il plante.

Et ça n’est pas tout. Comme nous l’écrivions le 1er mai, l’autorité américaine de l’aviation civile vient d’ordonner aux compagnies opérant des Boeing 787 Dreamliner de couper de manière périodique l’alimentation électrique des générateurs de l’avion tous les 248 jours. Or, compté en centièmes de secondes, ce nombre de jours correspond au même nombre maudit. (…)

Lire la suite sur Slate


Publié le 6 mai, 2015 dans Internet, Technologie, WTF.

Commentaires (3)

 

  1. 1985 dit :

    @ Pazoozoo
    Merci pour votre réponse.
    Et effectivement, les nouveaux programmeurs sont à la baisse en qualité.
    J’étais gros système industrie et banque IBM Jess, mvs, opc, jcl, et sur BULL dps 6 et 7 méthode Warnier et HAMDAL puis UNIX dont le film matrix en fit la pub dès les premières scènes, puis les micros OS avec les disquettes 8 pouces 1/4 alors que windows 1 n’existait pas encore. Un disque IBM pesait 50 kilos. La belle époque et beaucoup de pro développeurs car les cours à l’école n’existaient pas encore. C’était chez les fabricants que nous allions pour apprendre leurs produits. Puis les profs de maths qui expliquaient les premiers algorithmes if, or, then, else. La rigolade. Le temps passe et c’est bien ainsi car seules les personnes DCD ne peuvent se plaindre que le temps passe. Vive la vie, vive la France, vive la langue française, vive les citoyens.

  2. Pazoozoo dit :

    * PS: je voulais dire que même un débutant vérifie.

  3. Pazoozoo dit :

    En tant que programmeur, à l’époque où ça s’est produit, j’étais en DUT Info.
    L’histoire de ce chiffre n’est du au fait qu’à une mauvaise gestion du type de codage. Le gars qui a programmé (en C à l’époque) la chose n’avait pas fait les choses suivantes que même un débutant ne fait pas :
    – initialiser le pointeur de la variable à NULL <- celui là était dû à l'explosion. Si typiquement sous Windows, ça met automatiquement à NULL, sous Unix, ce n'est pas le cas (à l'époque et encore aujourd'hui il me semble).
    – initialiser le contenu du pointeur à 0 (chaine, tableau etc.)
    – tester les limites dues au codage (8 bits, 16 bits etc.) ce qui provoque des effets de bords.
    – vérifier que le malloc a bien réservé la mémoire et mettre son contenu à 0 et faire le free correspondant (sinon ça fait des fuites de mémoire)
    – etc.

    Bref, ça fait des bugs, et quand ça fait des bugs, ça peut faire boum.

    Aujourd'hui ce genre d'erreurs sont légion car les programmeurs "nouvelle génération" programment comme des cochons. Alors pour la communication, le commercial, pour faire joli, on appelle cela "une faille de sécurité", du coup, on a des "mises à jour de sécurité"… C'est plus chic que de dire: "ben, on a programmé comme des ploucs, on n'a pas vérifié nos initialisation et le nettoyage de mémoire, alors y a des bugs qu'on a corrigé".

    Ce chiffre est tout simplement 0x7FFFFFFF en hexadécimal (base 16) pour un entier positif.

    Suffit de faire attention à ce qu'on programme, c'est élémentaire.

    Voilà pour l'explication informatiques réelle.

Laissez un commentaire