BinaryToFloat (String function): Difference between revisions

From m204wiki
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

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