Konvertieren Byte[] , int
Habe ich diese Methode wandelt eine signierte oder nicht signierte byte
zu int
ist, aber es nicht zurückgeben, was es soll, zurück. Kann jemand darauf hin, das Problem in dem code unten?
public int convertByteToInt(byte[] b){
int value= 0;
for(int i=0;i<b.length;i++){
int n=(b[i]<0?(int)b[i]+256:(int)b[i])<<(8*i);
value+=n;
}
return value;
}
Bearbeitet :
Ich bin tatsächlich zu Lesen, eine wav-Datei zur Berechnung des SNR. der zurückgegebene Wert von der Konvertierung geben sollte etwas zwischen 0 und 255.
Die Anwendung sollte vergleichen, 2-Wellen-Datei, die auf das orignal und den anderen geändert wird, und berechnen Sie das SNR .
Können Sie wie..indent Sie Ihren code?
Sind Sie sicher, dass Sie nicht wollen, Integer.parseInt(new String(b))
Was bedeutet es zu geben? Haben Sie Beispiele?
überprüfen Sie dieses heraus: stackoverflow.com/questions/5399798/...
Sind Sie sicher, dass Sie nicht wollen, Integer.parseInt(new String(b))
Was bedeutet es zu geben? Haben Sie Beispiele?
überprüfen Sie dieses heraus: stackoverflow.com/questions/5399798/...
InformationsquelleAutor outellou | 2011-02-09
Du musst angemeldet sein, um einen Kommentar abzugeben.
OK, so haben Sie eine big-endian-byte-array, das Sie konvertieren in int. Ich glaube nicht, dass es darauf ankommt, was den Wert jedes byte ist; Sie müssen nur kleben Sie alle zusammen:
Wenn ich mich hier etwas fehlt, lasst es mich wissen.
InformationsquelleAutor KeithS
Danke für die Antworten, aber ich fand, dass das problem kommt von woanders, nicht von der Umwandlung methode,
es ist eine andere version der methode
InformationsquelleAutor outellou
Sind Sie den code schreiben, als übung, oder sind Sie nur auf der Suche nach einem Weg, es zu tun? Wenn letzteres, würde ich vorschlagen, mit ByteBuffer. Es hat eine getInt-Methode, die tun sollten, die trick.
InformationsquelleAutor Adam Holmberg
Sieht aus wie Sie vergessen, shift Links, in dem Fall, wo Sie hinzufügen 256.
Außerdem, Sie gehen davon aus, eine little-endian-byte[] (und möchten Sie vielleicht, um zu überprüfen, dass es nicht mehr als 4 bytes lang)
InformationsquelleAutor mpontillo
Dieser code funktioniert perfekt, ich war Suche nach code-Beispiel und nichts funktioniert, mache ich das.
InformationsquelleAutor Joaquin
Ich würde empfehlen, DatatypeConverter, es hat mehrere Funktionen, kann Sie zu führen, was Sie wollen
InformationsquelleAutor RicardoVallejo