當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


C# BitConverter.ToSingle()用法及代碼示例


此方法用於返回一個單精度浮點數,該浮點數是從字節數組中指定位置的四個字節轉換而來的。

用法:

public static float ToSingle (byte[] value, int startIndex);

參數:


  • value:它是一個字節數組。
    startIndex:它是值內的起始位置。

返回值:此方法返回一個由startIndex開始的四個字節組成的單精度浮點數。

異常:

  • ArgumentException:如果startIndex大於或等於值的長度減去3,並且小於或等於值的長度減去1。
  • ArgumentNullException:如果值為空。
  • ArgumentOutOfRangeException:如果startIndex小於零或大於值的長度減1。

以下示例程序旨在說明BitConverter.ToSingle(Byte [],Int32)方法的用法:

示例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(); 
} 
}

輸出:

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

示例2:對於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(); 
} 
}

輸出:

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

示例3:對於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(); 
    } 
}

輸出:

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

示例4:對於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); 
        } 
    } 
}

輸出:

Exception Thrown: System.ArgumentNullException

參考:



相關用法


注:本文由純淨天空篩選整理自RohitPrasad3大神的英文原創作品 C# | BitConverter.ToSingle() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。