IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mathématiques Discussion :

Stockage d'un nombre dans 32 bits


Sujet :

Mathématiques

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 8
    Points : 0
    Points
    0
    Par défaut Stockage d'un nombre dans 32 bits
    Bonjour tout le monde

    Tout d´abord je voudrais m´excuser d´avance si je pose ma problématique dans le mauvais forum vu que je n´ai pas trouvé ce que pourrait être la section adéquate.

    Etant nouveau et débutant se tournant vers l´apprentissage des bases de l´informatique je suis à la recherche d´une réponse à une , disons, problématique.

    Je suis au niveau des bases de l´informatique visant à comprendre le système binaire et tout ce qui se rapporte à ce chapitre.

    Je fais face à une problématique dont voici l´énoncé :

    M. Dupont se félicite de l'équilibre budgétaire de 2014 et s'inquiète de la dette publique toujours croissante en Europe et aux États-Unis.
    Il note que les États-Unis dépasseront cette année une dette nationale de 22.222.222.222.222,22 dollars.
    Il veut entrer cette valeur dans un tableur pour calculer quelque chose.
    Il entre donc la valeur dans une cellule et se demande pourquoi le programme corrige automatiquement cette valeur à 22.222.222.222.222,20 raison pour laquelle les questions suivantes se posent à vous :
    1- Pourquoi la valeur est-elle automatiquement modifiée par le système?
    2- s´agit-il d´un système 32 bits? (expliquer)

    Bon ma réponse à moi serait que le système a atteint sa limite de mémoire et c´est pour cela la valeur a été automatiquement changée et que il ne s´agit pas d´un 32 bits puisque le 32 Bits est capables d´enregistrer jusqu´à 2 (exp 32) -1.

    J´ai des doutes sur ma réponse et c´est pour cela que je me tourne vers vous.

    Merci d´avance pour vos réponses.

  2. #2
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 057
    Points : 9 396
    Points
    9 396
    Par défaut
    Un système 32 bits est capable de traiter des nombres jusqu'à 2^32 -1 ... considérons que ceci est vrai, c'est quasi vrai.

    L'un des problèmes c'est que stocker des entiers jusqu'à 2^32-1, ça prend un certain espace. Mais stocker des nombres à virgule jusqu'à 2^32-1, ça prend plus d'espace.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 8
    Points : 0
    Points
    0
    Par défaut
    Merci pour votre réponse mais ça ne répond pas aux questions de la problématique énoncée.

  4. #4
    Membre émérite

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Points : 2 570
    Points
    2 570
    Billets dans le blog
    9
    Par défaut Stockage d'un nombre dans 32 bits
    Bonjour,

    Citation Envoyé par ABA124 Voir le message
    ... Il note que les États-Unis dépasseront cette année une dette nationale de 22.222.222.222.222,22 dollars.
    Il veut entrer cette valeur dans un tableur pour calculer quelque chose.
    Il entre donc la valeur dans une cellule et se demande pourquoi le programme corrige automatiquement cette valeur à 22.222.222.222.222,20 raison pour laquelle les questions suivantes se posent à vous :
    1- Pourquoi la valeur est-elle automatiquement modifiée par le système?
    2- s´agit-il d´un système 32 bits? (expliquer) ...
    Si l'on s'en tient déjà à la seule valeur entière citée, on observe que l'on a
    Ln(22222222222222)/Ln(2) = 44.337...
    et qu'elle ne peut par conséquent être représentée par un entier au format LongInt, donc au plus égal à 231 - 1 ~ 2.147E9.

    Un nombre décimal exige à fortiori un espace plus important, par exemple 10 octets au format Extended; le nombre de chiffres significatifs (16 ou 18) dépend alors du standard adopté par le logiciel.

    Si la frappe de la chaîne à 16 chiffres "22222222222222,22" conduit à l'affichage du nombre "22222222222222.20", c'est qu'un troncature intervient automatiquement dès la saisie de la donnée: il te faut donc consulter la documentation de ton tableur pour connaître la précision des données à virgule flottante, et comprendre ce qui se passe.


    Le français, notre affaire à tous
    Grand Dictionnaire Terminologique

  5. #5
    Membre émérite

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Points : 2 570
    Points
    2 570
    Billets dans le blog
    9
    Par défaut Stockage d'un nombre dans 32 bits
    Citation Envoyé par ABA124 Voir le message
    ... Bon ma réponse à moi serait que le système a atteint sa limite de mémoire et c´est pour cela la valeur a été automatiquement changée et que il ne s´agit pas d´un 32 bits puisque le 32 Bits est capable d´enregistrer jusqu´à 2 (exp 32) -1 ...
    Je découvre une notation défectueuse, qui dissimule peut-être une erreur:

    La limite évoquée est (2^32) - 1 = 4 294 967 295 ,

    et non pas 2(exp 32) - 1 = 2*Exp(32) - 1 ~ 1.579E14 .


    Le français, notre affaire à tous
    Grand Dictionnaire Terminologique

  6. #6
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 8
    Points : 0
    Points
    0
    Par défaut
    Alors tout d´abord merci pour vos messages cependant je remarque qu´on est entrain de dévier du sujet principal.

    De ce fait je essayer de simplifier les choses : mettez vous dans la peau de quelqu´un qui est entrain d´apprendre les bases de l´informatique (système binaire , calcul binaire , ce que c´est un 8 bits , un 16 bits . un 32 bits etc...) ce qui voudra dire qu´on est ni sur Windows ni sur un tableur déjà préétabli genre Excel ou autre.

    Les questions qui se posent donc sont simplement :
    1- Pourquoi 22.222.222.222.222,22 se voit changé automatiquement en 22.222.222.222.222,20?
    2- S´agit-il d´un système 32 Bits? si oui expliquer et si non ben expliquer aussi

    P.S : Pour votre gouverne ceci est l´énoncée d´un exercice pour des étudiants


    Merci

  7. #7
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 057
    Points : 9 396
    Points
    9 396
    Par défaut
    Commençons par un exercice un peu plus simple. On va oublier la partie décimale. Pour l'exercice, il faudra bien entendu revenir à l'énoncé initiale.

    Donc mon nouvel exercice, ce serait : on tape 22 222 222 222 222 .. et on voit à l'affichage 22 222 222 222 220. Que peut-on en déduire ?
    Ou une autre question un peu similaire, est-ce que 22 222 222 222 222 est plus petit que 2^31, ou plus grand que 2^31, ou même beaucoup plus grand que 2^31 ?

    L'objectif n'est pas de faire l'exercice à ta place, ça n'aiderait personne. Pas toi en tout cas.
    L'objectif, c'est de te guider vers la solution.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  8. #8
    Membre émérite

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Points : 2 570
    Points
    2 570
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par ABA124 Voir le message
    ... Les questions qui se posent donc sont simplement :
    1- Pourquoi 22.222.222.222.222,22 se voit changé automatiquement en 22.222.222.222.222,20?
    2- S´agit-il d´un système 32 Bits? si oui expliquer et si non ben expliquer aussi

    P.S : Pour votre gouverne ceci est l´énoncée d´un exercice pour des étudiants
    ...
    Alors ce qu'il transparaît de ce recadrage et que tu aurais dû dire, c'est que le nombre en cause est écrit en base 256 avec notation décimale, et qu'il est constitué de 6 bytes:
    N = a b c d e,f
    présentant respectivement les valeurs: a = e = 22 ; b = c = d = 222;
    l'espace occupé par cette donnée correspond à 6 octets, soit 6*8 = 48 bits (en laissant de côté la question de la virgule.

    Si l'on reconnaît immédiatement une notation binaire ou hexadécimale, il n'en va pas de même d'une notation mixte: la moindre des choses était de préciser la clé de lecture de la donnée.
    La divination ne fait pas partie des démarches normales des intervenants.


    Le français, notre affaire à tous
    Grand Dictionnaire Terminologique

  9. #9
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 459
    Points
    13 459
    Par défaut
    Bonjour

    @ABA124: Le ton impérieux que tu prends est vraiment malvenu.
    Si tu es nul, ce n'est pas la faute des habitués du forum.
    Ce ton est d'autant plus malvenu que la réponse a été donnée.

    Et pour bien te montrer que c'est toi qui ne sais pas lire / n'a pas lu / s'en fout totalement (rayer la mention inutile), je vais citer la phrase de wiwaxia, qui, selon moi, apporte la bonne réponse :

    il te faut donc consulter la documentation de ton tableur pour connaître la précision des données à virgule flottante, et comprendre ce qui se passe.
    Tu vas encore nous dire que tu es étudiant, donc nul, donc flemmard, donc tu n'a pas cherché ce qu'est la représentation en virgule flottante.
    Mais ça c'est de la 💩. Ce n'est pas parce qu'on débute qu'on n'étudie pas. C'est parce que t'es un glandeur.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  10. #10
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 287
    Points : 12 744
    Points
    12 744
    Par défaut
    Bonjour,

    Juste comme ça:

    Représentation 32 bits (IEEE754) du flottant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    22222222222222.22 ==> 01010101 10100001 10110000 00011101
    22222222222222.2  ==> 01010101 10100001 10110000 00011101
    22222222222222.0  ==> 01010101 10100001 10110000 00011101
    Cordialement.

  11. #11
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 8
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par Flodelarab Voir le message
    @ABA124: Le ton impérieux que tu prends est vraiment malvenu.
    Si tu es nul, ce n'est pas la faute des habitués du forum.
    Ce ton est d'autant plus malvenu que la réponse a été donnée.

    Et pour bien te montrer que c'est toi qui ne sais pas lire / n'a pas lu / s'en fout totalement (rayer la mention inutile), je vais citer la phrase de wiwaxia, qui, selon moi, apporte la bonne réponse :

    Tu vas encore nous dire que tu es étudiant, donc nul, donc flemmard, donc tu n'a pas cherché ce qu'est la représentation en virgule flottante.
    Mais ça c'est de la 💩. Ce n'est pas parce qu'on débute qu'on n'étudie pas. C'est parce que t'es un glandeur.
    J´ai trop hésite à te répondre , car de base répondre aux gens de ce niveau te rabaisse à leur niveau , mais je vais prendre quand même la peine de te répondre estimant que peut être tu es encore jeune et que tu as des difficultés d´analyse et de manque de savoir vivre.

    Tout d´abord j´ai remercié tout le monde pour le fait d´avoir pris la peine de me répondre et , humblement , repris la main pour mentionner que le but de l´énoncée était différent de ce qui a été mentionné dans les réponses.

    Apparemment tu as appris 2 nouveaux mots "impérieux" et "malvenu" que tu voulais coûte que coûte balancer quelque part c´est pour cela que je vais excuser ton INcivilité et je vais te prier de bien vouloir consulter la documentation du "savoir vivre" et des que t´auras terminé tu enchaînes direct avec "comment se tenir à table" ou plus exactement "comment se tenir dans un forum".(tu trouveras que balancer des termes comme mer..e n´y figurent pas).

    Cependant merci d´avoir pris la peine d´écrire ces quelques lignes.

    Citation Envoyé par tbc92 Voir le message
    Commençons par un exercice un peu plus simple. On va oublier la partie décimale. Pour l'exercice, il faudra bien entendu revenir à l'énoncé initiale.

    Donc mon nouvel exercice, ce serait : on tape 22 222 222 222 222 .. et on voit à l'affichage 22 222 222 222 220. Que peut-on en déduire ?
    Ou une autre question un peu similaire, est-ce que 22 222 222 222 222 est plus petit que 2^31, ou plus grand que 2^31, ou même beaucoup plus grand que 2^31 ?

    L'objectif n'est pas de faire l'exercice à ta place, ça n'aiderait personne. Pas toi en tout cas.
    L'objectif, c'est de te guider vers la solution.
    Bien le bonjour
    Voilà ce qu´on appelle une réponse constructive.
    Chapeau bas tbc92 , ça donne bien envie de débattre.
    Alors pour répondre à ta question: oui il est plus petit que 2^31 (d´où ma réponse disant que ce n´est pas un système 32 Bits qui en elle même est une réponse à la question 2 de mon énoncée).

    Seulement voila , la question 1 reste non résolue.puisque le nombre est plus petit que 2^31 , le système retournera une erreur vu que le nombre a dépassé la mémoire affectée et non pas l´arrondir non?

    Merci d´avance pour la réponse

    Citation Envoyé par wiwaxia Voir le message
    Alors ce qu'il transparaît de ce recadrage et que tu aurais dû dire, c'est que le nombre en cause est écrit en base 256 avec notation décimale, et qu'il est constitué de 6 bytes:
    N = a b c d e,f
    présentant respectivement les valeurs: a = e = 22 ; b = c = d = 222;
    l'espace occupé par cette donnée correspond à 6 octets, soit 6*8 = 48 bits (en laissant de côté la question de la virgule.

    Si l'on reconnaît immédiatement une notation binaire ou hexadécimale, il n'en va pas de même d'une notation mixte: la moindre des choses était de préciser la clé de lecture de la donnée.
    La divination ne fait pas partie des démarches normales des intervenants.
    Bonjour

    J´ai repris l´énoncée exactement comme elle a été posée dans un exercice donc je ne sais pas s´il a été écris en base 256 avec notation décimale.

  12. #12
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 057
    Points : 9 396
    Points
    9 396
    Par défaut
    Je suspectais cette réponse,
    Non, 22 222 222 222 222 n'est pas plus petit que 2^31. Loin de là. Vérifie le, c'est simple. Combien vaut 2^31 ?

    Enfin, on va quand même vérifier, 22 222 222 222 222, c'est bien égal à 19 999 999 999 999+2 222 222 222 223 ? On n'est pas dans un système bizarre de base 256 comme évoqué par un autre intervenant ?
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  13. #13
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 8
    Points : 0
    Points
    0
    Par défaut
    Désolé tbc je voulais dire plus grand et c´est pour cela que je te demandais si le système devrait normalement afficher une erreur vu que la limite a été dépassée.

    Excuse moi ais je n´ai pas bien compris le raisonnement : 22 222 222 222 222, c'est bien égal à 19 999 999 999 999+2 222 222 222 223 ? On n'est pas dans un système bizarre de base 256. (apparament mes connaissances sont plus que limitées )

    Merci

  14. #14
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 287
    Points : 12 744
    Points
    12 744
    Par défaut
    Dans le post #10 , je donne une indication pour les 2 réponses:

    Le fait de calculer avec 222....,22 qui se change (simplifie) en 222....,20 laisse dire que le système est en 32 bits et celui-ci ne conserve que ce qui est significatif pour lui sans trop compromettre la valeur (ceci s'explique par la perte de précision).
    Si on avait été en flottant (IEEE754) 64 bits, on aurait pas de perte de précision, donc le système n'aurait pas à simplifier.

    La valeur binaire que j'ai donné est la représentation binaire de la norme IEEE754 qui découpe la valeur comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    sign   exponent         mantissa
    0      10101011  01000011011000000011101
    Cordialement.

  15. #15
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Allemagne

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2018
    Messages : 8
    Points : 0
    Points
    0
    Par défaut
    Merci disdorgue

    Mais la valeur est bien plus grande que 2^31 donc c´est ce qui me perturbe un peu j´avoue.
    Je ne comprends pas comment ça se fait que le système affiche quand même une valeur de loi hors de la limite?

    Cordialement

  16. #16
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 459
    Points
    13 459
    Par défaut
    Reprenons du début :

    Un ordinateur est un boulier.
    Il ne manipule que des nombres entiers positifs. (Voilà pourquoi un ordinateur ne connaîtra jamais le nombre Pi)
    Quand on manipule des nombres négatifs, des nombres à virgule, des lettres, etc, c'est que l'on fait une bijection (une correspondance, si tu préfères) entre les nombres entiers positifs désignés par le boulier et les valeurs d'arrivée.
    • 255 peut coder pour 255 mais peut aussi coder pour -1
    • 65 peut coder pour 65, mais peut aussi coder un "A" majuscule.
    • 4 octets peuvent coder pour environ 4 milliards d'entiers positifs mais peuvent aussi coder pour des nombres à virgule.


    Tu t'obstines à considérer les 2^32 valeurs possibles sur 4 octets alors que ce ne sont pas forcément des entiers positifs.
    Ce peut être des nombres à virgule.
    C'est d'autant plus vrai que le nombre entré dans ton tableur n'est pas entier.
    Il faut donc que tu étudies la représentation en virgule flottante.
    C'est elle qui fait la correspondance entre ta mémoire de 2^32-1 valeurs possibles et les nombres à virgules.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

Discussions similaires

  1. Réponses: 12
    Dernier message: 29/01/2024, 15h32
  2. Réponses: 0
    Dernier message: 21/01/2014, 22h36
  3. erreur dans le calcul de nombre moyen des bits érronés
    Par princesse07 dans le forum MATLAB
    Réponses: 3
    Dernier message: 23/05/2008, 14h30
  4. Problème lecture de nombre dans un fichier en c++
    Par knecmotet dans le forum C++
    Réponses: 1
    Dernier message: 28/10/2004, 15h48
  5. [JDBC]Stockage d'un byte[] dans un Blob
    Par pista dans le forum JDBC
    Réponses: 2
    Dernier message: 25/06/2004, 16h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo