BinaryToFloat (String function): Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
m 1 revision |
(No difference)
| |
Revision as of 05:03, 19 January 2011
This intrinsic function converts a binary string representation of a floating point number to that number.
The BinaryToFloat function is available as of version 7.5 of the Sirius Mods.
Syntax
%number = string:BinaryToFloat
Syntax terms
- %num
- A numeric variable to receive the float value of the method object string.
- string
- A binary string value that can have a length of 4, 8, or 16 bytes.
Usage notes
- The inverse of the BinaryToFloat method is FloatToBinary.
Examples
The following program demonstrates the BinaryToFloat method, converting a series of different-length representations of the same float value.
The example also uses:
begin
image silly
a is float len 4
b is float len 8
c is float len 16
end image
prepare image silly
%i is float
%s is string len 30
for %i from -3.3 to 3.3 by 1.1
printText {%i:right(15)}:
%silly:a = %i; %silly:b = %i; %silly:c = %i;
%s = $lstr_get_image('SILLY')
printText {~} = {%s:stringToHex}
printText {~} = {%s:substring(1, 4):binaryToFloat}
printText {~} = {%s:substring(5, 8):binaryToFloat}
printText {~} = {%s:substring(13, 16):binaryToFloat}
end for
end
The result is:
-3.3:
%s:stringToHex = C134CCCDC134CCCCCCCCCCCCC134CCCCCCCCCCCC0000000000000000
%s:substring(1, 4):binaryToFloat = -3.30000019073486
%s:substring(5, 8):binaryToFloat = -3.3
%s:substring(13, 16):binaryToFloat = -3.3
-2.2:
%s:stringToHex = C1233333C123333333333333C1233333333333330000000000000000
%s:substring(1, 4):binaryToFloat = -2.19999980926514
%s:substring(5, 8):binaryToFloat = -2.2
%s:substring(13, 16):binaryToFloat = -2.2
-1.1:
%s:stringToHex = C111999AC111999999999999C1119999999999990000000000000000
%s:substring(1, 4):binaryToFloat = -1.10000038146973
%s:substring(5, 8):binaryToFloat = -1.1
%s:substring(13, 16):binaryToFloat = -1.1
0:
%s:stringToHex = 00000000000000000000000000000000000000000000000000000000
%s:substring(1, 4):binaryToFloat = 0
%s:substring(5, 8):binaryToFloat = 0
%s:substring(13, 16):binaryToFloat = 0
1.1:
%s:stringToHex = 4111999A411199999999999941119999999999990000000000000000
%s:substring(1, 4):binaryToFloat = 1.10000038146973
%s:substring(5, 8):binaryToFloat = 1.1
%s:substring(13, 16):binaryToFloat = 1.1
2.2:
%s:stringToHex = 41233333412333333333333341233333333333330000000000000000
%s:substring(1, 4):binaryToFloat = 2.19999980926514
%s:substring(5, 8):binaryToFloat = 2.2
%s:substring(13, 16):binaryToFloat = 2.2
3.3:
%s:stringToHex = 4134CCCD4134CCCCCCCCCCCC4134CCCCCCCCCCCC0000000000000000
%s:substring(1, 4):binaryToFloat = 3.30000019073486
%s:substring(5, 8):binaryToFloat = 3.3
%s:substring(13, 16):binaryToFloat = 3.3