BinaryToFloat (String function): Difference between revisions
Jump to navigation
Jump to search
m (1 revision) |
m (1 revision) |
||
Line 1: | Line 1: | ||
{{Template:String:BinaryToFloat subtitle}} | {{Template:String:BinaryToFloat subtitle}} | ||
This [[Intrinsic classes|intrinsic]] function converts a binary string representation of a floating point number to that number. | This [[Intrinsic classes|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]]. | The BinaryToFloat function is available as of version 7.5 of the [[Sirius Mods]]. | ||
==Syntax== | ==Syntax== | ||
{{Template:String:BinaryToFloat syntax}} | {{Template:String:BinaryToFloat syntax}} | ||
Line 13: | Line 13: | ||
<td>A binary string value that can have a length of 4, 8, or 16 bytes.</td></tr> | <td>A binary string value that can have a length of 4, 8, or 16 bytes.</td></tr> | ||
</table> | </table> | ||
==Usage notes== | ==Usage notes== | ||
*The inverse of the BinaryToFloat method is [[FloatToBinary (Float function)|FloatToBinary]]. | *The inverse of the BinaryToFloat method is [[FloatToBinary (Float function)|FloatToBinary]]. | ||
==Examples== | ==Examples== | ||
The following program demonstrates the BinaryToFloat method, | The following program demonstrates the BinaryToFloat method, | ||
converting a series of different-length representations of the same float value. | converting a series of different-length representations of the same float value. | ||
The example also uses: | The example also uses: | ||
*The [[Right (String function)|Right]] method. | *The [[Right (String function)|Right]] method. | ||
*The [[Substring (String function)|Substring]] method. | *The [[Substring (String function)|Substring]] method. | ||
*The [[PrintText statement|PrintText]] statement. | *The [[PrintText statement|PrintText]] statement. | ||
begin | begin | ||
image silly | image silly | ||
a is float len 4 | a is float len 4 | ||
b is float len 8 | b is float len 8 | ||
c is float len 16 | c is float len 16 | ||
end image | end image | ||
prepare image silly | prepare image silly | ||
%i is float | %i is float | ||
%s is string len 30 | %s is string len 30 | ||
for %i from -3.3 to 3.3 by 1.1 | for %i from -3.3 to 3.3 by 1.1 | ||
printText {%i:right(15)}: | printText {%i:right(15)}: | ||
%silly:a = %i; %silly:b = %i; %silly:c = %i; | %silly:a = %i; %silly:b = %i; %silly:c = %i; | ||
%s = $lstr_get_image('SILLY') | %s = $lstr_get_image('SILLY') | ||
printText {~} = {%s:stringToHex} | printText {~} = {%s:stringToHex} | ||
printText {~} = {%s:substring(1, 4):binaryToFloat} | printText {~} = {%s:substring(1, 4):binaryToFloat} | ||
printText {~} = {%s:substring(5, 8):binaryToFloat} | printText {~} = {%s:substring(5, 8):binaryToFloat} | ||
printText {~} = {%s:substring(13, 16):binaryToFloat} | printText {~} = {%s:substring(13, 16):binaryToFloat} | ||
end for | end for | ||
end | end | ||
The result is: | The result is: | ||
-3.3: | -3.3: | ||
%s:stringToHex = C134CCCDC134CCCCCCCCCCCCC134CCCCCCCCCCCC0000000000000000 | %s:stringToHex = C134CCCDC134CCCCCCCCCCCCC134CCCCCCCCCCCC0000000000000000 | ||
%s:substring(1, 4):binaryToFloat = -3.30000019073486 | %s:substring(1, 4):binaryToFloat = -3.30000019073486 | ||
%s:substring(5, 8):binaryToFloat = -3.3 | %s:substring(5, 8):binaryToFloat = -3.3 | ||
%s:substring(13, 16):binaryToFloat = -3.3 | %s:substring(13, 16):binaryToFloat = -3.3 | ||
-2.2: | -2.2: | ||
%s:stringToHex = C1233333C123333333333333C1233333333333330000000000000000 | %s:stringToHex = C1233333C123333333333333C1233333333333330000000000000000 | ||
%s:substring(1, 4):binaryToFloat = -2.19999980926514 | %s:substring(1, 4):binaryToFloat = -2.19999980926514 | ||
%s:substring(5, 8):binaryToFloat = -2.2 | %s:substring(5, 8):binaryToFloat = -2.2 | ||
%s:substring(13, 16):binaryToFloat = -2.2 | %s:substring(13, 16):binaryToFloat = -2.2 | ||
-1.1: | -1.1: | ||
%s:stringToHex = C111999AC111999999999999C1119999999999990000000000000000 | %s:stringToHex = C111999AC111999999999999C1119999999999990000000000000000 | ||
%s:substring(1, 4):binaryToFloat = -1.10000038146973 | %s:substring(1, 4):binaryToFloat = -1.10000038146973 | ||
%s:substring(5, 8):binaryToFloat = -1.1 | %s:substring(5, 8):binaryToFloat = -1.1 | ||
%s:substring(13, 16):binaryToFloat = -1.1 | %s:substring(13, 16):binaryToFloat = -1.1 | ||
0: | 0: | ||
%s:stringToHex = 00000000000000000000000000000000000000000000000000000000 | %s:stringToHex = 00000000000000000000000000000000000000000000000000000000 | ||
%s:substring(1, 4):binaryToFloat = 0 | %s:substring(1, 4):binaryToFloat = 0 | ||
%s:substring(5, 8):binaryToFloat = 0 | %s:substring(5, 8):binaryToFloat = 0 | ||
%s:substring(13, 16):binaryToFloat = 0 | %s:substring(13, 16):binaryToFloat = 0 | ||
1.1: | 1.1: | ||
%s:stringToHex = 4111999A411199999999999941119999999999990000000000000000 | %s:stringToHex = 4111999A411199999999999941119999999999990000000000000000 | ||
%s:substring(1, 4):binaryToFloat = 1.10000038146973 | %s:substring(1, 4):binaryToFloat = 1.10000038146973 | ||
%s:substring(5, 8):binaryToFloat = 1.1 | %s:substring(5, 8):binaryToFloat = 1.1 | ||
%s:substring(13, 16):binaryToFloat = 1.1 | %s:substring(13, 16):binaryToFloat = 1.1 | ||
2.2: | 2.2: | ||
%s:stringToHex = 41233333412333333333333341233333333333330000000000000000 | %s:stringToHex = 41233333412333333333333341233333333333330000000000000000 | ||
%s:substring(1, 4):binaryToFloat = 2.19999980926514 | %s:substring(1, 4):binaryToFloat = 2.19999980926514 | ||
%s:substring(5, 8):binaryToFloat = 2.2 | %s:substring(5, 8):binaryToFloat = 2.2 | ||
%s:substring(13, 16):binaryToFloat = 2.2 | %s:substring(13, 16):binaryToFloat = 2.2 | ||
3.3: | 3.3: | ||
%s:stringToHex = 4134CCCD4134CCCCCCCCCCCC4134CCCCCCCCCCCC0000000000000000 | %s:stringToHex = 4134CCCD4134CCCCCCCCCCCC4134CCCCCCCCCCCC0000000000000000 | ||
%s:substring(1, 4):binaryToFloat = 3.30000019073486 | %s:substring(1, 4):binaryToFloat = 3.30000019073486 | ||
%s:substring(5, 8):binaryToFloat = 3.3 | %s:substring(5, 8):binaryToFloat = 3.3 | ||
%s:substring(13, 16):binaryToFloat = 3.3 | %s:substring(13, 16):binaryToFloat = 3.3 | ||
===See also=== | ===See also=== | ||
[[List of intrinsic String methods]] | [[List of intrinsic String methods]] | ||
Revision as of 14:04, 19 January 2011
Convert binary string representation of a number to floating point (String class)
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