ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
229
229
EMPFEHLEN
-
Hallo,
ich möchte aus einem vierstelligen Bytefeld einen achtstelligen Hexstring erzeugen und diesen anschließend in einen Dezimalwert umrechnen. Das Codebeispiel stellt meinen Weg dar, um das Ziel zu erreichen. Ich vermute jedoch, daß dieser Weg nicht der effizienteste ist, da langsam. Wer kennt einen besseren Weg?
Gruß
jabonva
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
public class test { public static void main( String[] args ) { //Ausgangssituation (hex->00000100; dez->256) byte[] data = new byte[4]; data[0] = 0; data[1] = 1; data[2] = 0; data[3] = 0; //aus data wird ein hexString erstellt String a = Integer.toHexString(data[0]); if ( a.length() == 1 ) a = new String("0"+a); String b = Integer.toHexString(data[1]); if ( b.length() == 1 ) b = new String("0"+b); String c = Integer.toHexString(data[2]); if ( c.length() == 1 ) c = new String("0"+c); String d = Integer.toHexString(data[3]); if ( d.length() == 1 ) d = new String("0"+d); String hexString = new String(d+c+b+a); //Hexstring (00000100) nach Dezimal (256) int number = Integer.parseInt(hexString, 16); } }
-
29.03.10 07:59 #2
Moin,
wenn ich Dich richtig verstehe, suchst Du wohl sowas :
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14
public static int makeInt(byte[] aByte) { int nRes = 0; try { nRes = (toUnsignedInt(aByte[0]) | ( (toUnsignedInt(aByte[1])) << 8) | ( (toUnsignedInt(aByte[2])) << 16) | ( (toUnsignedInt(aByte[3])) << 24) ); } catch (Exception ex) {} return nRes; }
Gruß
KlausGeändert von vfl_freak (29.03.10 um 07:59 Uhr) Grund: Tippfehler im Klammerung
Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!
Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
-------------------------------------------------------------------------------------------------
Ich beantworte keine Fragen per PN !!
Stellt Eure Fragen im Forum - dann haben alle etwas davon !!
-
Hallo,
alternativ könnte man auch einen ByteBuffer verwenden:
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
import java.nio.ByteBuffer; import java.nio.ByteOrder; public class test { public static void main(String args[]) { //Ausgangssituation (hex->00000100; dez->256) byte[] data = new byte[4]; data[0] = 0; data[1] = 1; data[2] = 0; data[3] = 0; ByteBuffer bb = ByteBuffer.wrap(data); bb.order(ByteOrder.LITTLE_ENDIAN); int number = bb.getInt(); System.out.println(number); // => 256 } }
Grüße,
Matthias„Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
“For every complex problem, there is an answer that is short, simple and wrong.”
“Pessimism is safe, but optimism is a lot faster!”
Aktuelles Coding Quiz: #17 - Wörter kreuz und quer
Ähnliche Themen
-
Byte* nach Char* casten
Von WorldRacer im Forum C/C++Antworten: 2Letzter Beitrag: 07.07.09, 21:59 -
Byte nach Binär-String
Von woezelmann im Forum JavaAntworten: 1Letzter Beitrag: 22.02.08, 15:08 -
VB .net: structure nach byte array für DLL
Von Tensi im Forum .NET Application und Service DesignAntworten: 0Letzter Beitrag: 29.07.07, 15:20 -
Sbyte nach Byte konvertieren
Von Chrono im Forum .NET CaféAntworten: 11Letzter Beitrag: 30.07.06, 22:06 -
Wandeln von BYTE nach BOOL
Von salma im Forum .NET ArchivAntworten: 1Letzter Beitrag: 21.01.05, 15:51





Zitieren

Login





