C# | BitConverter.ToSingle() Method
This method is used to returns a single-precision floating-point number converted from four bytes at a specified position in a byte array.
Syntax:
public static float ToSingle (byte[] value, int startIndex);
Parameters:
value: It is an array of bytes.
startIndex: It is the starting position within value.
Return Value: This method returns a single-precision floating point number formed by four bytes beginning at startIndex.
Exceptions:
- ArgumentException: If the startIndex is greater than or equal to the length of value minus 3, and is less than or equal to the length of value minus 1.
- ArgumentNullException: If the value is null.
- ArgumentOutOfRangeException: If the startIndex is less than zero or greater than the length of value minus 1.
Below programs illustrate the use of BitConverter.ToSingle(Byte[], Int32) Method:
Example 1:
// C# program to demonstrate // BitConverter.ToSingle(Byte[], Int32) // Method using System; class GFG { // Main Method public static void Main() { try { // Define an array of byte values. byte [] bytes = {0, 128, 63, 0, 0, 112, 65, 0, 255, 127, 71, 0, 0, 128, 59, 0, 0, 128, 47, 73, 70, 131, 5, 75, 6, 158, 63}; // Display the values of the myArr. Console.Write( "Initial Array: " ); // calling the PrintIndexAndValues() // method to print PrintIndexAndValues(bytes); // print char value Console.WriteLine( "index Array elements float values" ); Console.WriteLine(); // getting float value and Display it for ( int index = 0; index < bytes.Length - 3; index = index + 4) { float values = BitConverter.ToSingle(bytes, index); Console.WriteLine( " {0} {1} {2}" , index, BitConverter.ToString(bytes, index, 4), values); } } catch (ArgumentNullException e) { Console.Write( "Exception Thrown: " ); Console.Write( "{0}" , e.GetType(), e.Message); } catch (ArgumentOutOfRangeException e) { Console.Write( "Exception Thrown: " ); Console.Write( "{0}" , e.GetType(), e.Message); } catch (ArgumentException e) { Console.Write( "Exception Thrown: " ); Console.Write( "{0}" , e.GetType(), e.Message); } } // Defining the method // PrintIndexAndValues public static void PrintIndexAndValues( byte [] myArr) { for ( int i = 0; i < myArr.Length; i++) { Console.Write( "{0} " , myArr[i]); } Console.WriteLine(); Console.WriteLine(); } } |
Output:
Initial Array: 0 128 63 0 0 112 65 0 255 127 71 0 0 128 59 0 0 128 47 73 70 131 5 75 6 158 63 index Array elements float values 0 00-80-3F-00 5.831554E-39 4 00-70-41-00 6.009485E-39 8 FF-7F-47-00 6.566237E-39 12 00-80-3B-00 5.464212E-39 16 00-80-2F-49 718848 20 46-83-05-4B 8749894
Example 2: For ArgumentException
// C# program to demonstrate // BitConverter.ToSingle(Byte[], Int32) // Method using System; class GFG { // Main Method public static void Main() { try { // Define an array of byte values. byte [] bytes ={0, 128, 63, 0, 0, 112, 65, 0, 255, 127, 71, 0, 0, 128, 59, 0, 0, 128, 47, 73, 70, 131, 5, 75, 6, 158, 63}; // Display the values of the myArr. Console.Write( "Initial Array: " ); // calling the PrintIndexAndValues() // method to print PrintIndexAndValues(bytes); // print char value Console.WriteLine( "index Array elements" + " float values" ); Console.WriteLine(); // getting float value and Display it for ( int index = 0; index < bytes.Length - 2; index = index + 4) { if (index == bytes.Length - 3) { Console.WriteLine(); Console.WriteLine( "startIndex is equal to" + " the length of bytes minus 3" ); float values = BitConverter.ToSingle(bytes, index); Console.WriteLine( " {0} {1} {2}" , index, BitConverter.ToString(bytes, index, 4), values); } else { float values = BitConverter.ToSingle(bytes, index); Console.WriteLine( " {0} {1} {2}" , index, BitConverter.ToString(bytes, index, 4), values); } } } catch (ArgumentNullException e) { Console.Write( "Exception Thrown: " ); Console.Write( "{0}" , e.GetType(), e.Message); } catch (ArgumentOutOfRangeException e) { Console.Write( "Exception Thrown: " ); Console.Write( "{0}" , e.GetType(), e.Message); } catch (ArgumentException e) { Console.Write( "Exception Thrown: " ); Console.Write( "{0}" , e.GetType(), e.Message); } } // Defining the method // PrintIndexAndValues public static void PrintIndexAndValues( byte [] myArr) { for ( int i = 0; i < myArr.Length; i++) { Console.Write( "{0} " , myArr[i]); } Console.WriteLine(); Console.WriteLine(); } } |
Output:
Initial Array: 0 128 63 0 0 112 65 0 255 127 71 0 0 128 59 0 0 128 47 73 70 131 5 75 6 158 63 index Array elements float values 0 00-80-3F-00 5.831554E-39 4 00-70-41-00 6.009485E-39 8 FF-7F-47-00 6.566237E-39 12 00-80-3B-00 5.464212E-39 16 00-80-2F-49 718848 20 46-83-05-4B 8749894 startIndex is equal to the length of bytes minus 3 Exception Thrown: System.ArgumentException
Example 3: For ArgumentOutOfRangeException
// C# program to demonstrate // BitConverter.ToSingle(Byte[], Int32) // Method using System; using System.Collections.Generic; public class GFG { // Main Method public static void Main() { try { // Define an array of byte values. byte [] bytes = {0, 128, 63, 0, 0, 112, 65, 0, 255, 127, 71, 0, 0, 128, 59, 0, 0, 128, 47, 73, 70, 131, 5, 75, 6, 158, 63, 24}; // Display the values of the myArr. Console.Write( "Initial Array: " ); // calling the PrintIndexAndValues() // method to print PrintIndexAndValues(bytes); // print char value Console.WriteLine( "index Array elements float values" ); Console.WriteLine(); // getting float value and Display it for ( int index = 0; index < bytes.Length + 1; index = index + 4) { if (index == bytes.Length) { Console.WriteLine(); Console.WriteLine( "startIndex is greater than " + "the length of bytes minus 1." ); float values = BitConverter.ToSingle(bytes, index); Console.WriteLine( " {0} {1} {2}" , index, BitConverter.ToString(bytes, index, 4), values); } else { float values = BitConverter.ToSingle(bytes, index); Console.WriteLine( " {0} {1} {2}" , index, BitConverter.ToString(bytes, index, 4), values); } } } catch (ArgumentNullException e) { Console.Write( "Exception Thrown: " ); Console.Write( "{0}" , e.GetType(), e.Message); } catch (ArgumentOutOfRangeException e) { Console.Write( "Exception Thrown: " ); Console.Write( "{0}" , e.GetType(), e.Message); } catch (ArgumentException e) { Console.Write( "Exception Thrown: " ); Console.Write( "{0}" , e.GetType(), e.Message); } } // Defining the method // PrintIndexAndValues public static void PrintIndexAndValues( byte [] myArr) { for ( int i = 0; i < myArr.Length; i++) { Console.Write( "{0} " , myArr[i]); } Console.WriteLine(); Console.WriteLine(); } } |
Output:
Initial Array: 0 128 63 0 0 112 65 0 255 127 71 0 0 128 59 0 0 128 47 73 70 131 5 75 6 158 63 24 index Array elements float values 0 00-80-3F-00 5.831554E-39 4 00-70-41-00 6.009485E-39 8 FF-7F-47-00 6.566237E-39 12 00-80-3B-00 5.464212E-39 16 00-80-2F-49 718848 20 46-83-05-4B 8749894 24 06-9E-3F-18 2.476595E-24 startIndex is greater than the length of bytes minus 1. Exception Thrown: System.ArgumentOutOfRangeException
Example 4: For ArgumentNullException
// C# program to demonstrate // BitConverter.ToSingle(Byte[], Int32) // Method using System; class GFG { // Main Method public static void Main() { try { // Define an array of byte // values with null value byte [] bytes = null ; // getting the float value float values = BitConverter.ToSingle(bytes, 0); Console.Write( "{0}" , values); } catch (ArgumentNullException e) { Console.Write( "Exception Thrown: " ); Console.Write( "{0}" , e.GetType(), e.Message); } catch (ArgumentOutOfRangeException e) { Console.Write( "Exception Thrown: " ); Console.Write( "{0}" , e.GetType(), e.Message); } catch (ArgumentException e) { Console.Write( "Exception Thrown: " ); Console.Write( "{0}" , e.GetType(), e.Message); } } } |
Output:
Exception Thrown: System.ArgumentNullException
Reference:
- https://docs.microsoft.com/en-us/dotnet/api/system.bitconverter.tosingle?view=netframework-4.7.2
Contact Us