German B4R - DoubleToBytes Problem

Zecke

Member
Licensed User
Longtime User
Hallo!

Ich habe Probleme beim Konvertieren von Datentypen. Ich muss ein Double nach Byte bringen da ich das per MQTT senden möchte. Aber ich erhalte nur kryptische Zeichen.
B4X: Copy
Dim BC As ByteConverter
Dim dbl As Double = 10.00
Dim bytes() As Byte = BC.DoublesToBytes(Array As Double(dbl))
Log(bytes)

Grüße..
 


Datentyp Double belegt 4 Bytes bei B4R/Arduino , will heissen das eine Flieskommazahl intern mit 4 Bytes gespeichert wird.
Die Anzeige der Bytes interpretiert man nur richtig, wenn man einen IEEE 754 Konverter in der Birne eingebaut hat oder mit dem ByteConverter.

B4X: Copy
    Dim BC As ByteConverter
    Dim dbl As Double = 10.00
    Dim bytes() As Byte = BC.DoublesToBytes(Array As Double(dbl))
    Log(bytes(0),TAB,bytes(1),TAB,bytes(2),TAB,bytes(3))
   
    Dim b(4) As Byte
    Dim BC As ByteConverter
    BC.ArrayCopy2(bytes, 0, b, 0, 4)
    Dim d() As Double = BC.DoublesFromBytes(b)
    Log(d(0))     'Anzeige 10
 
Danke,

aufwändig für basic... Aber ich habe es etwas einfacher hingekriegt. B4R interpretiert Zahlen die man statt Strings angibt als String. Da kann man das also auch etwas einfacher machen:

B4X: Copy
    Dim BC As ByteConverter
    Dim dbl As Double = 10.00
    Dim bytes() As Byte
    bytes = BC.StringToBytes(dbl) 'Die Double Var wird autom. nach String gewandelt...
    Log(bytes)

Grüße...
 
Back
Top