|
You last visited: Today at 23:36
Advertisement
[VB] Hex in Float konvertieren
Discussion on [VB] Hex in Float konvertieren within the .NET Languages forum part of the Coders Den category.
08/07/2013, 08:41
|
#1
|
elite*gold: 26
Join Date: Dec 2010
Posts: 2,628
Received Thanks: 1,816
|
[VB] Hex in Float konvertieren
Hallo ich würde gerne einen 4byte hex wert in einen Float konvertieren
Andersherum ist das ganz einfach:
PHP Code:
TextBox2.Text = BitConverter.ToString(BitConverter.GetBytes(Convert.ToSingle(TextBox1.Text))) //Textbox1 ist die Eingabe und Textbox2 die Ausgabe
Mein code ist bisjetzt so Ich habe das mit der Klasse(  so verstanden das ich erst alle hexwerte splitten muss weil da immer ein "-" zwischen den hex teilen ist:
PHP Code:
Dim test As String() Dim byte1 As String
test = Split(TextBox1.Text, "-")//Textbox1 ist die Eingabe byte1 = test(0) + test(1) + test(2) + test(3)
Dim s As Single = Convert.ToSingle(byte1)
wenn ich das aber ausführe kommt bei
PHP Code:
Dim s As Single = Convert.ToSingle(byte1)
"Die Eingabezeichenfolge hat das Falsche Format"
Aber welches andere Format soll ich bitte benutzen?
Dnake für eure Hilfe
Edit: Damit es nicht zur Verwirrung kommt "Single"= "Float"
|
|
|
08/07/2013, 08:51
|
#2
|
elite*gold: 3570
Join Date: Dec 2012
Posts: 13,044
Received Thanks: 8,252
|
Code:
Private Function ConvertHexToSingle(ByVal hexValue As String) As Single
Try
Dim iInputIndex As Integer = 0
Dim iOutputIndex As Integer = 0
Dim bArray(3) As Byte
For iInputIndex = 0 To hexValue.Length - 1 Step 2
bArray(iOutputIndex) = Byte.Parse(hexValue.Chars(iInputIndex) & hexValue.Chars(iInputIndex + 1), Globalization.NumberStyles.HexNumber)
iOutputIndex += 1
Next
Array.Reverse(bArray)
Return BitConverter.ToSingle(bArray, 0)
Catch ex As Exception
Throw New FormatException("The supplied hex value is either empty or in an incorrect format. Use the following format: 00000000", ex)
End Try
End Function
Das hat google ausgespuckt
|
|
|
08/07/2013, 08:54
|
#3
|
elite*gold: 5
Join Date: Mar 2008
Posts: 460
Received Thanks: 436
|
Ganz ganz wichtig,
Schreib oben 1. Zeile als aller erstes:
Für anstehende Projekte würde ich dir empfehle das generell einzuschalten indem du:
Extras -> Options -> Projekte und Projektmappen -> VB-Standard -> Options Strict ON + Option Explicit ON
machst.
|
|
|
08/07/2013, 09:43
|
#4
|
elite*gold: 26
Join Date: Dec 2010
Posts: 2,628
Received Thanks: 1,816
|
Quote:
Originally Posted by Requi
Code:
Private Function ConvertHexToSingle(ByVal hexValue As String) As Single
Try
Dim iInputIndex As Integer = 0
Dim iOutputIndex As Integer = 0
Dim bArray(3) As Byte
For iInputIndex = 0 To hexValue.Length - 1 Step 2
bArray(iOutputIndex) = Byte.Parse(hexValue.Chars(iInputIndex) & hexValue.Chars(iInputIndex + 1), Globalization.NumberStyles.HexNumber)
iOutputIndex += 1
Next
Array.Reverse(bArray)
Return BitConverter.ToSingle(bArray, 0)
Catch ex As Exception
Throw New FormatException("The supplied hex value is either empty or in an incorrect format. Use the following format: 00000000", ex)
End Try
End Function
Das hat google ausgespuckt
|
ok mit dem Kommt was anderes raus als was ich als input hab
Ich habe erst 1.1212 zu Hex konvertiert dann kam 00-30-2F-46 raus
das habe ich dann mit der von dir gennanten funktion wieder zurück konvertiert und habe dann aber nichtmehr 1.1212 sondern einen Kleineren Wert mit einer viel zulangen Nachkommastelle für Float
Edit: Mir ist aufgefallen wenn ich das was da rauskomme wieder in hex umwanndle und das dann wieder in float das ich dann meinen Anfangswert ohne Komma bekomm aber woran liegt das??
|
|
|
08/07/2013, 09:58
|
#5
|
elite*gold: 3570
Join Date: Dec 2012
Posts: 13,044
Received Thanks: 8,252
|
Vielleicht ist es ja nicht in 4 Bytes wie du es möchtest.
Mit dem Kram hab ich noch nix zu tun gehabt.
|
|
|
08/07/2013, 10:02
|
#6
|
elite*gold: 26
Join Date: Dec 2010
Posts: 2,628
Received Thanks: 1,816
|
Quote:
Originally Posted by Requi
Vielleicht ist es ja nicht in 4 Bytes wie du es möchtest.
Mit dem Kram hab ich noch nix zu tun gehabt.
|
stimmt des könnte sein würd mich aber wundern da ich gedacht hab float sind immer 4bytes groß
|
|
|
08/07/2013, 10:18
|
#7
|
elite*gold: 3570
Join Date: Dec 2012
Posts: 13,044
Received Thanks: 8,252
|
Schreibs halt so um, dass es 2 mal konvertiert xD
|
|
|
08/07/2013, 14:08
|
#8
|
elite*gold: 0
Join Date: Sep 2005
Posts: 427
Received Thanks: 87
|
Code:
byte[] bytes = new byte[]{ 0x00, 0x30, 0x2F, 0x46 };
if (BitConverter.IsLittleEndian) {
Array.Reverse(bytes);
}
float myFloat = BitConverter.ToSingle(bytes, 0);
ist ungetestet, sollte aber so funktionieren, muss nur noch in vb übertragen werden
|
|
|
08/08/2013, 11:28
|
#9
|
elite*gold: 26
Join Date: Dec 2010
Posts: 2,628
Received Thanks: 1,816
|
Quote:
Originally Posted by kissein
Code:
byte[] bytes = new byte[]{ 0x00, 0x30, 0x2F, 0x46 };
if (BitConverter.IsLittleEndian) {
Array.Reverse(bytes);
}
float myFloat = BitConverter.ToSingle(bytes, 0);
ist ungetestet, sollte aber so funktionieren, muss nur noch in vb übertragen werden 
|
ja funkt ich bin auch n harter vollspast -.- ich hab vergessen das man die hex werte dann von hintenlesen muss(also umgekehrt eingeben um das richtige rauszubekommen -.- ich spast
Der von requi hätt auch funktioniert wenns ned an meiner beschränktheit gescheitert wäre danke euch beiden kann geclosed werden
Edit: wenns jemanden intressiert in vb sieht das dann so aus
Textbox1 ist eingabe textbox2 die ausgabe
PHP Code:
Dim ByteArray As String()
ByteArray = Split(TextBox1.Text, "-")
Dim bytes As Byte() = New Byte() {"&H" & ByteArray(3), "&H" & ByteArray(2), "&H" & ByteArray(1), "&H" & ByteArray(0)}
If BitConverter.IsLittleEndian Then
Array.Reverse(bytes)
End If
Dim float As String
float = Convert.ToString(BitConverter.ToSingle(bytes, 0))
Dim i As Integer = float.Length - 4
Dim Vorkommastelle As Integer = float.Substring(0, i)
Dim Nachkommastelle As String = float.Substring(i, float.Length - i)
MsgBox(Nachkommastelle)
TextBox2.Text = Vorkommastelle & "." & Nachkommastelle
|
|
|
08/08/2013, 11:42
|
#10
|
elite*gold: 3570
Join Date: Dec 2012
Posts: 13,044
Received Thanks: 8,252
|
Mach dir nichts draus. Mein letzter Fail ist härter.
Und ist auch nicht von mir, sondern von Tante google :
|
|
|
08/08/2013, 17:52
|
#11
|
elite*gold: 1
Join Date: Jun 2012
Posts: 5,819
Received Thanks: 3,200
|
Mach mal option strict an...
Nen byte ist kein string ; O
|
|
|
08/08/2013, 20:17
|
#12
|
elite*gold: 26
Join Date: Dec 2010
Posts: 2,628
Received Thanks: 1,816
|
Quote:
Originally Posted by 'Heaven.
Mach mal option strict an...
Nen byte ist kein string ; O
|
Ja mach ich an
Ich hab auch bemerkt das man einen String , Indem ein HEX Byte steht nicht in byte konvertieren ich habs jetz eh danke
|
|
|
08/09/2013, 17:22
|
#13
|
elite*gold: 900
Join Date: Apr 2009
Posts: 14,981
Received Thanks: 11,403
|
closed on request
|
|
|
 |
Similar Threads
|
*.odp in *.ppt konvertieren?
10/18/2012 - Technical Support - 0 Replies
Wie im Titel steht - gibt es eine Möglichkeit, eine Präsentation von OpenOffice in einer PowerPoint Präsentation zu konvertieren?
|
4 Byte in Float konvertieren mit AutoIT
06/30/2012 - AutoIt - 7 Replies
Hi,
Die Variable deren Adresse ich mit Cheat-engine suche ist eine Float variable. Wenn ich die Adresse mit AutoIT einlese interpretiert er es allerdings als 4Byte und bringt ein total falsches Ergebnis. Da man nur Variablen mit dem Typ variant deklarieren kann wollte ich fragen ob man ein 4Byte auch in einen Float umrechnen kann.
|
LoL Records konvertieren
09/01/2011 - League of Legends - 3 Replies
Hallo zusammen,
Ich habe eine Frage und zwar habe ich nun einige Records, aber weiss nicht wie ich die so konvertieren kann, dass ich sie bei SonyVegas bearbeite.
Kann mir da jemand helfen ?
|
Pngs zu Gif Konvertieren
09/29/2010 - General Art - 1 Replies
Hey Com,
hab da mal ne Frage... habe mehrere PNGs und würde sie gerne zu einer Gif konvertieren(animierte) wie mach ich das am Besten? Hier die Gifs
€dit Hoffe, das das die richtige Section ist
Best Regards, beat'brot
|
Din A4 in A2/A3 konvertieren?
01/21/2010 - General Art - 5 Replies
Hallo Epvpers
Ich habe hier ein DinA4 Plakat mit einigen Brushes drauf und schrift (siehe Anhang).
RapidShare: 1-CLICK Web hosting - Easy Filehosting
Das Problem das das ganze auf A4 schon pixelmäßig grenzwertig ist.
Kann ich das irgendwie größer hinkriegen ohne das es enorm verpixelt ist?
Vielen Dank
Lemuna
|
All times are GMT +1. The time now is 23:36.
|
|