BinaryToFloat (String function): Difference between revisions

From m204wiki
Jump to navigation Jump to search
m (1 revision)
m (1 revision)
Line 26: Line 26:
*The [[Substring (String function)|Substring]] method.
*The [[Substring (String function)|Substring]] method.
*The [[PrintText statement|PrintText]] statement.
*The [[PrintText statement|PrintText]] statement.
    begin
<p class="code">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


</p>
The result is:
The result is:
              -3.3:
<p class="output">-3.3:
    %s:stringToHex = C134CCCDC134CCCCCCCCCCCCC134CCCCCCCCCCCC0000000000000000
%s:stringToHex = C134CCCDC134CCCCCCCCCCCCC134CCCCCCCCCCCC0000000000000000
    %s:substring(1, 4):binaryTo<var>Float</var> = -3.30000019073486
%s:substring(1, 4):binaryTo<var>Float</var> = -3.30000019073486
    %s:substring(5, 8):binaryTo<var>Float</var> = -3.3
%s:substring(5, 8):binaryTo<var>Float</var> = -3.3
    %s:substring(13, 16):binaryTo<var>Float</var> = -3.3
%s:substring(13, 16):binaryTo<var>Float</var> = -3.3
              -2.2:
-2.2:
    %s:stringToHex = C1233333C123333333333333C1233333333333330000000000000000
%s:stringToHex = C1233333C123333333333333C1233333333333330000000000000000
    %s:substring(1, 4):binaryTo<var>Float</var> = -2.19999980926514
%s:substring(1, 4):binaryTo<var>Float</var> = -2.19999980926514
    %s:substring(5, 8):binaryTo<var>Float</var> = -2.2
%s:substring(5, 8):binaryTo<var>Float</var> = -2.2
    %s:substring(13, 16):binaryTo<var>Float</var> = -2.2
%s:substring(13, 16):binaryTo<var>Float</var> = -2.2
              -1.1:
-1.1:
    %s:stringToHex = C111999AC111999999999999C1119999999999990000000000000000
%s:stringToHex = C111999AC111999999999999C1119999999999990000000000000000
    %s:substring(1, 4):binaryTo<var>Float</var> = -1.10000038146973
%s:substring(1, 4):binaryTo<var>Float</var> = -1.10000038146973
    %s:substring(5, 8):binaryTo<var>Float</var> = -1.1
%s:substring(5, 8):binaryTo<var>Float</var> = -1.1
    %s:substring(13, 16):binaryTo<var>Float</var> = -1.1
%s:substring(13, 16):binaryTo<var>Float</var> = -1.1
                  0:
  0:
    %s:stringToHex = 00000000000000000000000000000000000000000000000000000000
%s:stringToHex = 00000000000000000000000000000000000000000000000000000000
    %s:substring(1, 4):binaryTo<var>Float</var> = 0
%s:substring(1, 4):binaryTo<var>Float</var> = 0
    %s:substring(5, 8):binaryTo<var>Float</var> = 0
%s:substring(5, 8):binaryTo<var>Float</var> = 0
    %s:substring(13, 16):binaryTo<var>Float</var> = 0
%s:substring(13, 16):binaryTo<var>Float</var> = 0
                1.1:
1.1:
    %s:stringToHex = 4111999A411199999999999941119999999999990000000000000000
%s:stringToHex = 4111999A411199999999999941119999999999990000000000000000
    %s:substring(1, 4):binaryTo<var>Float</var> = 1.10000038146973
%s:substring(1, 4):binaryTo<var>Float</var> = 1.10000038146973
    %s:substring(5, 8):binaryTo<var>Float</var> = 1.1
%s:substring(5, 8):binaryTo<var>Float</var> = 1.1
    %s:substring(13, 16):binaryTo<var>Float</var> = 1.1
%s:substring(13, 16):binaryTo<var>Float</var> = 1.1
                2.2:
2.2:
    %s:stringToHex = 41233333412333333333333341233333333333330000000000000000
%s:stringToHex = 41233333412333333333333341233333333333330000000000000000
    %s:substring(1, 4):binaryTo<var>Float</var> = 2.19999980926514
%s:substring(1, 4):binaryTo<var>Float</var> = 2.19999980926514
    %s:substring(5, 8):binaryTo<var>Float</var> = 2.2
%s:substring(5, 8):binaryTo<var>Float</var> = 2.2
    %s:substring(13, 16):binaryTo<var>Float</var> = 2.2
%s:substring(13, 16):binaryTo<var>Float</var> = 2.2
                3.3:
3.3:
    %s:stringToHex = 4134CCCD4134CCCCCCCCCCCC4134CCCCCCCCCCCC0000000000000000
%s:stringToHex = 4134CCCD4134CCCCCCCCCCCC4134CCCCCCCCCCCC0000000000000000
    %s:substring(1, 4):binaryTo<var>Float</var> = 3.30000019073486
%s:substring(1, 4):binaryTo<var>Float</var> = 3.30000019073486
    %s:substring(5, 8):binaryTo<var>Float</var> = 3.3
%s:substring(5, 8):binaryTo<var>Float</var> = 3.3
    %s:substring(13, 16):binaryTo<var>Float</var> = 3.3
%s:substring(13, 16):binaryTo<var>Float</var> = 3.3


</p>
==See also==
==See also==
[[List of intrinsic String methods]]
[[List of intrinsic String methods]]

Revision as of 15:49, 20 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

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

See also

List of intrinsic String methods