Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 23:36

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[VB] Hex in Float konvertieren

Discussion on [VB] Hex in Float konvertieren within the .NET Languages forum part of the Coders Den category.

Closed Thread
 
Old   #1




 
stotterer09's Avatar
 
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"
stotterer09 is offline  
Old 08/07/2013, 08:51   #2


 
Requi's Avatar
 
elite*gold: 3570
The Black Market: 244/0/0
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
Requi is offline  
Thanks
1 User
Old 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:
Code:
Option Strict On
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.
SwarN is offline  
Old 08/07/2013, 09:43   #4




 
stotterer09's Avatar
 
elite*gold: 26
Join Date: Dec 2010
Posts: 2,628
Received Thanks: 1,816
Quote:
Originally Posted by Requi View Post
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??
stotterer09 is offline  
Old 08/07/2013, 09:58   #5


 
Requi's Avatar
 
elite*gold: 3570
The Black Market: 244/0/0
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.
Requi is offline  
Old 08/07/2013, 10:02   #6




 
stotterer09's Avatar
 
elite*gold: 26
Join Date: Dec 2010
Posts: 2,628
Received Thanks: 1,816
Quote:
Originally Posted by Requi View Post
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ß
stotterer09 is offline  
Old 08/07/2013, 10:18   #7


 
Requi's Avatar
 
elite*gold: 3570
The Black Market: 244/0/0
Join Date: Dec 2012
Posts: 13,044
Received Thanks: 8,252
Schreibs halt so um, dass es 2 mal konvertiert xD
Requi is offline  
Old 08/07/2013, 14:08   #8
 
kissein's Avatar
 
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
kissein is offline  
Thanks
1 User
Old 08/08/2013, 11:28   #9




 
stotterer09's Avatar
 
elite*gold: 26
Join Date: Dec 2010
Posts: 2,628
Received Thanks: 1,816
Quote:
Originally Posted by kissein View Post
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(bytes0))
        
Dim i As Integer float.Length 4
        Dim Vorkommastelle 
As Integer float.Substring(0i)
        
Dim Nachkommastelle As String float.Substring(ifloat.Length i)
        
MsgBox(Nachkommastelle)
        
TextBox2.Text Vorkommastelle "." Nachkommastelle 
stotterer09 is offline  
Old 08/08/2013, 11:42   #10


 
Requi's Avatar
 
elite*gold: 3570
The Black Market: 244/0/0
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 :
Requi is offline  
Thanks
1 User
Old 08/08/2013, 17:52   #11
 
'Heaven.'s Avatar
 
elite*gold: 1
The Black Market: 331/0/0
Join Date: Jun 2012
Posts: 5,819
Received Thanks: 3,200
Mach mal option strict an...

Nen byte ist kein string ; O
'Heaven. is offline  
Old 08/08/2013, 20:17   #12




 
stotterer09's Avatar
 
elite*gold: 26
Join Date: Dec 2010
Posts: 2,628
Received Thanks: 1,816
Quote:
Originally Posted by 'Heaven. View Post
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
stotterer09 is offline  
Thanks
1 User
Old 08/09/2013, 17:22   #13

 
xxfabbelxx's Avatar
 
elite*gold: 900
Join Date: Apr 2009
Posts: 14,981
Received Thanks: 11,403
closed on request
xxfabbelxx is offline  
Thanks
1 User
Closed Thread


Similar Threads 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.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.