[COLOR=#00ff00]' VBA-Module(Excel, using WorksheetFunctions 'Dec2Hex' and 'Dec2Bin' for TestPrintout):[/COLOR]
Option Base 0
Type TESTdint
DINT As Long
End Type
Type TESTreal
REAL As Single
End Type
Type TESTarby
ARBY(0 To 3) As Byte
End Type
Type TESTbyte
BYTE0 As Byte
BYTE1 As Byte
BYTE2 As Byte
BYTE3 As Byte
End Type
Sub testing()[COLOR=#00ff00] ' copy contents of userdefined variables via LSet (e.g. used for TypeCasts)
[/COLOR]
Dim nixR As TESTreal
Dim nixD As TESTdint
Dim nixA As TESTarby
Dim nixB As TESTbyte
nixR.REAL = 4 * Atn(1)[COLOR=#00ff00] ' Pi[/COLOR]
LSet nixD = nixR[COLOR=#00ff00] ' TypeCast REAL_TO_DINT[/COLOR]
Debug.Print
Debug.Print "REALoriginal: " & nixR.REAL
Debug.Print "DINTfromREAL: " & nixD.DINT
LSet nixR = nixD[COLOR=#00ff00] ' TypeCast DINT_TO_REAL[/COLOR]
Debug.Print "REALfromDINT: " & nixR.REAL
LSet nixB = nixR[COLOR=#00ff00] ' TypeCast REAL_TO_4_SEPARATE_BYTES[/COLOR]
Debug.Print "Bytes 0 to 3: " & WorksheetFunction.Dec2Hex(nixB.BYTE3, 2) & WorksheetFunction.Dec2Hex(nixB.BYTE2, 2) & " " & WorksheetFunction.Dec2Hex(nixB.BYTE1, 2) & WorksheetFunction.Dec2Hex(nixB.BYTE0, 2)
Debug.Print "Bytes 0 to 3: " & WorksheetFunction.Dec2Bin(nixB.BYTE3, 8) & " " & WorksheetFunction.Dec2Bin(nixB.BYTE2, 8) & " " & WorksheetFunction.Dec2Bin(nixB.BYTE1, 8) & " " & WorksheetFunction.Dec2Bin(nixB.BYTE0, 8)
LSet nixA = nixR[COLOR=#00ff00] ' TypeCast REAL_TO_4_ITEMS_OF_ARRAY_OF_BYTE[/COLOR]
Debug.Print
Debug.Print "ArrayOfByte : " & WorksheetFunction.Dec2Hex(nixA.ARBY(3), 2) & WorksheetFunction.Dec2Hex(nixA.ARBY(2), 2) & " " & WorksheetFunction.Dec2Hex(nixA.ARBY(1), 2) & WorksheetFunction.Dec2Hex(nixA.ARBY(0), 2)
Debug.Print "ArrayOfByte : " & WorksheetFunction.Dec2Bin(nixA.ARBY(3), 8) & " " & WorksheetFunction.Dec2Bin(nixA.ARBY(2), 8) & " " & WorksheetFunction.Dec2Bin(nixA.ARBY(1), 8) & " " & WorksheetFunction.Dec2Bin(nixA.ARBY(0), 8)
Strg = WorksheetFunction.Dec2Bin(nixA.ARBY(3), 8) & WorksheetFunction.Dec2Bin(nixA.ARBY(2), 8) & WorksheetFunction.Dec2Bin(nixA.ARBY(1), 8) & WorksheetFunction.Dec2Bin(nixA.ARBY(0), 8)
Debug.Print
Debug.Print " " & ".3....:....2....:....1....:....0"
Debug.Print "String WoSep: " & Strg
Debug.Print
Debug.Print "IEEE-754 : " & ". 3....:.. ..2....:....1....:....0"
Debug.Print "ArrayOfByte : " & Mid(Strg, 1, 1) & " " & Mid(Strg, 2, 8) & " " & Mid(Strg, 10)
Debug.Print " " & "S EEEEEEEE MMMMMMMMMMMMMMMMMMMMMMM"
Stop
End Sub