Information, représentation des données (3)

On a vue ensemble l’écriture binaire de nombres décimaux.

Il reste à voir comment ils peuvent être codés en mémoire. Pour cela, les normes en vigueur définissent les flottants, en simple précision sur 32 bits (float), et en double précision sur 64 bits (double).

Je vous propose de commencer par ce petit test pour rassembler vos connaissances et découvrir et vous frotter aux difficultés du jour :

On ne triche pas et on cherche avant de continuer !

On suppose que vous avez bien cherché… On va tout détailler !

cm 2020-03-19 ISN virgule flottante 01

cm 2020-03-19 ISN virgule flottante 02

cm 2020-03-19 ISN virgule flottante 03

On explique pourquoi :

>>> 0.1 + 0.1 + 0.1
0.30000000000000004
>>>

cm 2020-03-19 ISN virgule flottante 04

Remarque : attention aux codes avec les flottants !

« 0.2 + 0.1 n’est pas égal à 0.3. Il faut éviter de tester l’égalité de deux flottants. »

Illustrons-le avec un petit code python très maladroit :

nombre = 0.1

while nombre != 1 :
    nombre += 0.1
    print(nombre)

Il faut en effet éviter de tester l’égalité de deux flottants :

>>> 
======== RESTART: cm 2020-02-03 NSI exemple1.py ========
0.2
0.30000000000000004
0.4
0.5
0.6
0.7
0.7999999999999999
0.8999999999999999
0.9999999999999999
1.0999999999999999
1.2
1.3
...

Il nous a fallu une interruption (Ctrl-C) pour ce programme qui tournait en boucle infinie !

Conclusion pour l’oral du bac ISN ?

Encore un exercice ?

cm 2020-03-19 ISN virgule flottante 05cm 2020-03-19 ISN virgule flottante 06

A mettre en simple précision sur 32 bits.

On peut vérifier avec ce convertisseur :

  • 6,625 donne 01000000 11010100 00000000 00000000
  • 5,4375 donne 01000000 10101110 00000000 00000000

 

N'hésitez-pas à poser une question, ou faire avancer le schmilblick

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google

Vous commentez à l’aide de votre compte Google. Déconnexion /  Changer )

Image Twitter

Vous commentez à l’aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.