Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [?] convertire numero decimale in floating point

    ciao

    mi serve una guida, ita o ing, che spieghi
    come si effettua la conversione da un numero reale in base dieci
    (es: +13,49) in un numero in virgola mobile a precisione singola o doppia.

    so che come primo passo si guarda il segno (quindi l'ultimo bit sara' 0 per positivo e 1 per negativo)

    si converte la parte intera (quindi "13") e viene "1101"
    e poi si converte la parte reale "0,49" in binario ---- questo è il punto che nn riesco a capire!


    help...
    DYNAMIC+ [ E-mail ]

    Secondo me non si può fare!

  2. #2
    i numeri in virgola mobile con precisione singola sono composti in questo modo:

    1bit di segno
    8 bit per l'esponente
    23 bit per la pate frazionaria (mantissa)

    il bit di segno è il più significativo

    quelli a precisione doppia hanno:

    1bit di segno
    11 bit per l'esponente
    52 bit per la pate frazionaria (mantissa)
    Purtroppo bisogna imparare che il computer non sbaglia...fa solo quello che gli dici di fare

    www.netpolaris.it

  3. #3
    Originariamente inviato da Shagrat
    i numeri in virgola mobile con precisione singola sono composti in questo modo:

    1bit di segno
    8 bit per l'esponente
    23 bit per la pate frazionaria (mantissa)

    il bit di segno è il più significativo

    quelli a precisione doppia hanno:

    1bit di segno
    11 bit per l'esponente
    52 bit per la pate frazionaria (mantissa)

    si questo lo so

    ma come ci arrrivo a comporlo, dato un numero decimale?
    x esempio ho +13,49 e voglio rappresentarlo in virgola mobile...
    come viene e quali sono i passi?
    DYNAMIC+ [ E-mail ]

    Secondo me non si può fare!

  4. #4
    prova a leggere questo

    Ciao.
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

  5. #5
    Originariamente inviato da DYNAM!C+
    si questo lo so

    ma come ci arrrivo a comporlo, dato un numero decimale?
    x esempio ho +13,49 e voglio rappresentarlo in virgola mobile...
    come viene e quali sono i passi?
    si gia letto.
    il punto critico è

    per la parte frazionaria:

    0.412 x 2 = 0.824 0
    0.824 x 2 = 1.648 1
    1.648 x 2 = 1.296 1
    1.296 x 2 = 0.592 0
    0.592 x 2 = 1.184 1

    (22.412)10 = 1011001101


    1.296 x 2 = 0.592 ??????????????
    DYNAMIC+ [ E-mail ]

    Secondo me non si può fare!

  6. #6
    per la parte frazionaria:

    0.412 x 2 = 0.824 0
    0.824 x 2 = 1.648 1
    1.648 x 2 = 1.296 1
    1.296 x 2 = 0.592 0
    0.592 x 2 = 1.184 1

    (22.412)10 = 1011001101


    1.296 x 2 = 0.592 ??????????????
    Non ho capito... :master:

    Ciao.
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    ti dimentichi sempre di togliere 1

    0.49 10 = 0,01111... 2

    codice:
    0.49 x 2 = 0.98 --> 0
    0.98 x 2 = 1.96 --> 1 (e tolgo 1 da 1.96)
    0.96 x 2 = 1.92 --> 1 (idem, tolgo 1)
    0.92 x 2 = 1.84 --> 1 ...
    0.84 x 2 = 1.68 --> 1 ...
    ...
    ...
    ...
    ...
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  8. #8
    Utente di HTML.it L'avatar di bako
    Registrato dal
    Feb 2004
    Messaggi
    1,797
    e l'esponente va normalizzato in eccesso a 127
    cioè prendi il tuo esponente e c sommi 127 in binario (per la singola precisione)

  9. #9
    Originariamente inviato da Andrea1979
    ti dimentichi sempre di togliere 1
    solo questo non mi era chiaro.
    perfetto

    mi sono studiato l'algoritmo che usa la c stdlib
    DYNAMIC+ [ E-mail ]

    Secondo me non si può fare!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.