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

    Stringa BINARIA in FLOAT... AIUTO!!!!

    ho un dato binario di tipo String e voglio convertirlo in float... cioè:

    String a = "10001011010101101010110101010101";

    Volglio convertirlo in float... come faccio?
    Naturalmente ho già provato l'istruzione:

    Float dato = Float.valueOf(a);

    ma mi restituisce una cosa del tipo
    1.0001011010E31
    praticamente nn capisce che il numero è in binario e lo prende in decimale e lo converte... cosa che io nn voglio

    Spero di esser stato chiaro... vi prego di aiutarmi perchè mi dovrei laureare a breve ma senza questo passo.... sono cazzi amari

  2. #2
    Il linguaggio sopra riportato è JAVA.
    Scusate ma è il mio primo post...

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    156
    in che formato va interpretato il numero float? IEEE754?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Stringa BINARIA in FLOAT... AIUTO!!!!

    Originariamente inviato da piunreks
    ho un dato binario di tipo String e voglio convertirlo in float... cioè:

    String a = "10001011010101101010110101010101";

    Volglio convertirlo in float... come faccio?
    Naturalmente ho già provato l'istruzione:

    Float dato = Float.valueOf(a);

    ma mi restituisce una cosa del tipo
    1.0001011010E31
    praticamente nn capisce che il numero è in binario e lo prende in decimale e lo converte... cosa che io nn voglio

    Spero di esser stato chiaro... vi prego di aiutarmi perchè mi dovrei laureare a breve ma senza questo passo.... sono cazzi amari
    Non è per essere scortesi, ci mancherebbe, ma se avessi dato una minima occhiata alla documentazione della classe Float avresti trovato un bel metodo "troppo giusto"!!!! Cioè: intBitsToFloat()

    codice:
    String a = "10001011010101101010110101010101";
    int i = Integer.parseInt (a, 2);
    float f = Float.intBitsToFloat (i);
    Se la stringa fosse malformata, parseInt lancia NumberFormatException, chiaramente.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    si lo standard è l'IEEE...
    il metodo intBitsToFloat() nn fa quello che mi serve.
    Mi spiego meglio perchè forse sono stato capito male...
    io ho un file di tipo .dat dove ogni 4Byte (o 32 bit) mi rappresentano un dato (un'altezza di un punto...) questa successione di quattro Byte deve esser convertita in float.... la storia mantissa, esponente, segno insomma.
    Quindi io leggendo da file riesco ad ottenere la stringa lunga 32 caratteri con dentro il codice binario.
    ed ora?

    Grazie a tutti coloro che stanno cercando di aiutarmi.

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da piunreks
    si lo standard è l'IEEE...
    il metodo intBitsToFloat() nn fa quello che mi serve.
    Mi spiego meglio perchè forse sono stato capito male...
    io ho un file di tipo .dat dove ogni 4Byte (o 32 bit) mi rappresentano un dato (un'altezza di un punto...) questa successione di quattro Byte deve esser convertita in float.... la storia mantissa, esponente, segno insomma.
    Quindi io leggendo da file riesco ad ottenere la stringa lunga 32 caratteri con dentro il codice binario.
    ed ora?
    No ... forse non hai capito bene tu ....
    All'inizio del 3d hai fatto un esempio di stringa con 32 caratteri, poi adesso parli di un file che contiene 4 byte e poi mi parli di nuovo di ottenere dal file una stringa di 32 caratteri con il codice binario?? Deciditi ... se hai 4 byte, li prendi, li metti insieme per formare un int e quindi passi il valore a intBitsToFloat(). Se invece parti da una stringa, allora il codice che ho postato sopra è valido.

    Ah, questi 4 byte che dici di avere nel file in che formato sono? Little-endian o Big-endian???

    Comunque prima di dire che intBitsToFloat() non ti serve, prova questo programmino:
    codice:
    public class Prova
    {
        public static void main (String[] args)
        {
            float val = 1.2345f;
    
            System.out.format ("val = %f%n", val);
    
            int bits = Float.floatToIntBits (val);
    
            System.out.format ("bits = %08X%n", bits);
    
            byte b1 = (byte) (bits >>> 24);
            byte b2 = (byte) (bits >>> 16 & 255);
            byte b3 = (byte) (bits >>> 8 & 255);
            byte b4 = (byte) (bits & 255);
    
            System.out.format ("b1..4 = %02X %02X %02X %02X%n", b1, b2, b3, b4);
    
            int bits2 = b1 << 24 | (b2 & 255) << 16 | (b3 & 255) << 8 | (b4 & 255);
    
            System.out.format ("bits2 = %08X%n", bits2);
    
            float val2 = Float.intBitsToFloat (bits2);
    
            System.out.format ("val2 = %f%n", val2);
        }
    }
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.