Laden...

"Große Hexadezimalzahl" in Dezimalzahl umwandeln

Erstellt von MEt45 vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.789 Views
MEt45 Themenstarter:in
228 Beiträge seit 2006
vor 17 Jahren
"Große Hexadezimalzahl" in Dezimalzahl umwandeln

Hallo Leute,

ich bin mir nich sicher ob evt. soetwas schonmal besprochen wurde...
entschuldigung ebenfalls für den schlecht gewählten Thread Titel 🙁

Mein Problem ist:
ich lese eine 4 Byte große Float zahl aus und möchte sie in einen Integer umwandeln...
zuerst wandel ich den Wert
in eine string um (hab schon probiert es gleich von byte[] ->
int umzuwandeln hat jedoch auch nicht funktioniert):


string xValue = BitConverter.ToString(buffer);

dabei enthält der string dann diese Hexadezimalwerte:
(laut Debuger)
"DD-4D-DA-47"

nun möchte ich das ganze in einen Integer Wert umwandeln:


xPosi = Convert.ToInt32(xValue, 16);

jedoch bekomm ich beim umwandeln von "hexstring" zu int
die angehängte Fehlermeldung...

liegt es nun an den Trennstrichen zwischen den einzelnen Werten
oder könnte es noch ein anderes Problem geben...
ich wär euch sehr verbunden wenn ihr mir Tips geben könntet

MfG MEt45

Medieval Fantasy Online - ORPG Projekt
.NET - Try and Error - Blog - Gemeinschaftsblog
MEt45's Dev Garage - Eigener Blog

Q
214 Beiträge seit 2006
vor 17 Jahren

Hallo,
Warum nimmst du den Umweg über die String und wandelst die Float-Zahl nicht direkt um?

int i = Convert.ToInt32(meine_float_zahl);

MEt45 Themenstarter:in
228 Beiträge seit 2006
vor 17 Jahren

Original von MEt45
hab schon probiert es gleich von byte[] ->
int umzuwandeln hat jedoch auch nicht funktioniert

erledigt das deine frage?
es funktioniert leider nicht 🙁

Medieval Fantasy Online - ORPG Projekt
.NET - Try and Error - Blog - Gemeinschaftsblog
MEt45's Dev Garage - Eigener Blog

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo MEt45,

naja, da steht, dass du das byte-Array nicht in int umgewandelt bekommst. Qwald schlägt vor den float direkt in den int um zuwandeln.

Ich würde das auch vorschlagen:

int i = (int)meine_float_zahl;

es funktioniert leider nicht

Das ist eine schlechte Problembeschreibung. Siehe Wie poste ich richtig? Punkt 5

herbivore

MEt45 Themenstarter:in
228 Beiträge seit 2006
vor 17 Jahren

uhm es geht darum das ich keine konkrete float zahl wie z.B. 0.5 habe (dann würde ich hier nich schreiben 😉 )...
d.h. die float zahl (eine) befindet sich in dem byte array

ba[0] = 0
ba[1] = 108
ba[2] = 3
ba[3] = 10

ich hab auch schon mit dem BitConverter zu konvertieren jedoch kommen dabei falsche werte raus...

Medieval Fantasy Online - ORPG Projekt
.NET - Try and Error - Blog - Gemeinschaftsblog
MEt45's Dev Garage - Eigener Blog

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo MEt45,

wenn du einen float als byte-Array hast, dann musst du das mit BitConverter erst in einem float umwandeln, den du dann in einen int casten kannst.

herbivore

MEt45 Themenstarter:in
228 Beiträge seit 2006
vor 17 Jahren

ist das generell so?
wenn ja dankeschön für die antwort !

MfG MEt45

Medieval Fantasy Online - ORPG Projekt
.NET - Try and Error - Blog - Gemeinschaftsblog
MEt45's Dev Garage - Eigener Blog

49.485 Beiträge seit 2005
vor 17 Jahren

Hallo MEt45,

weiß nicht genau, was du mit generell meinst, aber wenn du meinst, dass wenn man eine Zahl als byte-Array hat, dass man das byte-Array erst in den Typ konvertieren muss, in dem die Zahl in dem byte-Array vorliegt, dann ja, das ist immer ein sinnvoller und nachvollziehbarer Weg.

herbivore