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