# on ne tient pas compte des éventuels arrondis def flottant(x): # écriture du signe s = '0' if x < 0: s = '1' x = - x # calcul de l'exposant et de la mantisse exp = 0 while x >= 2: x /= 2 exp += 1 while x < 1: x *= 2 exp -= 1 # signe s, exposant exp, mantisse x # exposant décalé exp += 1023 # en binaire sur 11 bits (voir l'exercice 3) e = '' while exp > 0: e = str(exp % 2) + e exp = exp // 2 e = (11 - len(e)) * '0' + e # mantisse tronquée x -= 1 m = '' for i in range(52): x *= 2 if x >= 1: m += '1' x -= 1 else: m += '0' return s + ' ' + e + ' ' + m