Sommaire
Rappels IEEE-754
Formats des nombres à virgule flottante:
- Simple-précision (32 bits): 1 bit de signe, 8 bits d’exposant (pôle=127), 23 bits de mantisse
- Double-précision (64 bits): 1 bit de signe, 11 bits d’exposant (pôle=1023), 52 bits de mantisse
Convertissez en binaire simple-précision le nombre 1664.125
- 1664.125 = 0b11010000000.001 = 0b1.1010000000001 * 2^10
- signe (1bit): positif -> 0
- exposant (8bits): 2^10 -> 0x89 = 0b10001001
- mantisse (23bits): 0b1010000000001 0000000000
- nombre: 0b0 10001001 10100000000010000000000
= 0b0100 0100 1101 0000 0000 0100 0000 0000
= 0x44D00400
Convertissez en décimal le nombre simple-précision 42FA4000
- 0x42FA4000 = 0b0100 0010 1111 1010 0100 0000 0000
- signe (1bit): 0 -> positif
- exposant (8bits): 0b10000101 = 0x85 -> 2^6
- mantisse (23bits): 111101001 0000000000
- nombre: +0b1.111101001 * 2^6 = 0b1111101.001 = 125.125
Convertissez en décimal le nombre simple-précision FF800000
- 0xFF800000 = 0b1111 1111 1000 0000 0000 0000 0000 0000
- signe (1bit): 1 -> négatif
- exposant (8bits): 0xFF -> spécial
- mantisse (23bits): 0
- -> spécial: -infini
Convertissez en binaire double-précision le nombre 125.25
- 125.25 = 0b1111101.01 -> 0b1.11110101 * 2^6
- signe (1bit): positif -> 0
- exposant (11bits): 2^6 -> 0x405 -> 0b100 0000 0101
- mantisse (52bits): 11110101 00000000000000000000000000000000000000000000
- nombre: 0b0100 0000 0101 1111 0101 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000
0x405F500000000000
Convertissez en binaire simple-précision le nombre 65536
- 65536 = 1.0 * 2^16
- signe (1bit): 0
- exposant (8bits): 2^16 -> 0x8F = 0b10001111
- mantisse (23bits): 0
- nombre: 0b0 10001111 00000000000000000000000
= 0b0100 0111 1000 0000 0000 0000 0000 0000
= 0x47800000
Convertissez en binaire simple-précision le nombre 0.1
- 0.1 = 0.000110011001100110011001100110011… (pas de représentation finie)
= 1.10011001100110011001100110011… * 2^-4 - signe (1bit): 0 (positif)
- exposant (8bits): 2^-4 -> 0x7B = 0b01111011
- mantisse (23bits): 10011001100110011001101 on arrondi au plus proche
- nombre: 0b0 01111011 10011001100110011001101
= 0b0011 1101 1100 1100 1100 1100 1100 1101
= 0x3DCCCCCD
Convertissez en binaire double-précision le nombre littéral flottant hexadécimal 0xCAFE.13371573p10
- 0xCAFE.13371573p10
= 0xCAFE.13371573 * 2^10
= 0b1100 1010 1111 1110 . 0001 0011 0011 0111 0001 0101 0111 0011 * 2^10
= 0b1.100 1010 1111 1110 0001 0011 0011 0111 0001 0101 0111 0011 * 2^25 - signe (1bit): positif -> 0
- exposant (11bits): 2^25 -> 0x418 -> 0b100 0001 1000
- matisse (52bits): 1001 0101 1111 1100 0010 0110 0110 1110 0010 1010 1110 0110 0000
- nombre: 0b0 100 0001 1000 1001 0101 1111 1100 0010 0110 0110 1110 0010 1010 1110 0110 0000
= 0x41895FC266E2AE60 - très approximativement 5.321326086068416e7