BitConverter.ToString Method (Byte[], Int32, Int32)

Converts the numeric value of each element of a specified subarray of bytes to its equivalent hexadecimal string representation.

Namespace: System
Assembly: mscorlib (in mscorlib.dll)

public static string ToString (
	byte[] value,
	int startIndex,
	int length
)
public static String ToString (
	byte[] value, 
	int startIndex, 
	int length
)
public static function ToString (
	value : byte[], 
	startIndex : int, 
	length : int
) : String
Not applicable.

Parameters

value

An array of bytes.

startIndex

The starting position within value.

length

The number of array elements in value to convert.

Return Value

A String of hexadecimal pairs separated by hyphens, where each pair represents the corresponding element in a subarray of value; for example, "7F-2C-4A".

Exception typeCondition

ArgumentNullException

value is a null reference (Nothing in Visual Basic).

ArgumentOutOfRangeException

startIndex or length is less than zero.

-or-

startIndex is greater than zero and is greater than or equal to the length of value.

ArgumentException

The combination of startIndex and length does not specify a position within value; that is, the startIndex parameter is greater than the length of value minus the length parameter.

The length elements from array position startIndex are converted.

If length equals zero, the method returns String.Empty.

The following code example converts the part of a Byte array starting at the specified startIndex with the specified length to a String using the ToString method.

// Example of some BitConverter.ToString( ) method overloads.
using System;

class BytesToStringDemo
{
    // Display a byte array, using multiple lines if necessary.
    public static void WriteMultiLineByteArray( byte[ ] bytes, 
        string name )
    {
        const int rowSize = 20;
        const string underLine = "--------------------------------";
        int iter;

        Console.WriteLine( name );
        Console.WriteLine( underLine.Substring( 0, 
            Math.Min( name.Length, underLine.Length ) ) );

        for( iter = 0; iter < bytes.Length - rowSize; iter += rowSize )
        {
            Console.Write( 
                BitConverter.ToString( bytes, iter, rowSize ) );
            Console.WriteLine( "-" );
        }

        Console.WriteLine( BitConverter.ToString( bytes, iter ) );
        Console.WriteLine( );
    }

    public static void Main( )
    {
        byte[ ] arrayOne = {
              0,   0,   0,   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, 
             77,   6, 158,  63,  80,   6, 158,  63,  30,  55, 
            190, 121, 255, 255, 127, 255, 255, 127, 127,   1, 
              0,   0,   0, 192, 255,   0,   0, 128, 255,   0, 
              0, 128, 127 };

        byte[ ] arrayTwo = {
            255, 255, 255,   0,   0,  20,   0,  33,   0,   0, 
              0,   1,   0,   0,   0, 100, 167, 179, 182, 224, 
             13,   0, 202, 154,  59,   0, 143,  91,   0, 170, 
            170, 170, 170, 170, 170,   0,   0, 232, 137,   4, 
             35, 199, 138, 255, 232, 244, 255, 252, 205, 255, 
            255, 129 };

        byte[ ] arrayThree = {
              0, 222,   0,   0,   0, 224, 111,  64,   0,   0, 
            224, 255, 255, 255, 239,  65,   0,   0, 131,   0, 
              0,   0, 112,  63,   0, 143,   0, 100,   0,   0, 
            240,  61, 223, 136,  30,  28, 254, 116, 170,   1, 
            250,  89, 140,  66, 202, 192, 243,  63, 251,  89, 
            140,  66, 202, 192, 243,  63, 252,  89, 140,  66, 
            202, 192, 243,  63,  82, 211, 187, 188, 232, 126, 
            255, 255, 255, 244, 255, 239, 127,   1,   0,   0, 
              0,  10,  17,   0,   0, 248, 255,   0,  88,   0, 
             91,   0,   0, 240, 255,   0,   0, 240, 157 };

        Console.WriteLine( "This example of the\n" +
            "  BitConverter.ToString( byte[ ], int ) and \n" +
            "  BitConverter.ToString( byte[ ], int, int ) \n" +
            "methods generates the following output.\n" );

        WriteMultiLineByteArray( arrayOne, "arrayOne" );
        WriteMultiLineByteArray( arrayTwo, "arrayTwo" );
        WriteMultiLineByteArray( arrayThree, "arrayThree" );
    }
}

/*
This example of the
  BitConverter.ToString( byte[ ], int ) and
  BitConverter.ToString( byte[ ], int, int )
methods generates the following output.

arrayOne
--------
00-00-00-00-80-3F-00-00-70-41-00-FF-7F-47-00-00-80-3B-00-00-
80-2F-49-46-83-05-4B-06-9E-3F-4D-06-9E-3F-50-06-9E-3F-1E-37-
BE-79-FF-FF-7F-FF-FF-7F-7F-01-00-00-00-C0-FF-00-00-80-FF-00-
00-80-7F

arrayTwo
--------
FF-FF-FF-00-00-14-00-21-00-00-00-01-00-00-00-64-A7-B3-B6-E0-
0D-00-CA-9A-3B-00-8F-5B-00-AA-AA-AA-AA-AA-AA-00-00-E8-89-04-
23-C7-8A-FF-E8-F4-FF-FC-CD-FF-FF-81

arrayThree
----------
00-DE-00-00-00-E0-6F-40-00-00-E0-FF-FF-FF-EF-41-00-00-83-00-
00-00-70-3F-00-8F-00-64-00-00-F0-3D-DF-88-1E-1C-FE-74-AA-01-
FA-59-8C-42-CA-C0-F3-3F-FB-59-8C-42-CA-C0-F3-3F-FC-59-8C-42-
CA-C0-F3-3F-52-D3-BB-BC-E8-7E-FF-FF-FF-F4-FF-EF-7F-01-00-00-
00-0A-11-00-00-F8-FF-00-58-00-5B-00-00-F0-FF-00-00-F0-9D
*/

// Example of some BitConverter.ToString( ) method overloads.
import System.*;

class BytesToStringDemo
{
    // Display a byte array, using multiple lines if necessary.
    public static void WriteMultiLineByteArray(ubyte bytes[], String name)
    {
        final int rowSize = 20;
        final String underLine = "--------------------------------";
        int iter;

        Console.WriteLine(name);
        Console.WriteLine(underLine.Substring(0, System.Math.Min(name.length(), 
                            underLine.length())));
        for (iter = 0; iter < bytes.length - rowSize; iter+=rowSize) {
            Console.Write(BitConverter.ToString(bytes, iter, rowSize));
            Console.WriteLine("-");
        }
        Console.WriteLine(BitConverter.ToString(bytes, iter));
        Console.WriteLine();
    } //WriteMultiLineByteArray

    public static void main(String[] args)
    {
        ubyte arrayOne[] =  { 0, 0, 0, 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, 77, 6, 158, 63, 80, 6, 158, 
                                63, 30, 55, 190, 121, 255, 255, 127, 255, 255, 
                                127, 127, 1, 0, 0, 0, 192, 255, 0, 0, 128, 255, 
                                0, 0, 128, 127 };
        ubyte arrayTwo[] =  { 255, 255, 255, 0, 0, 20, 0, 33, 0, 0, 0, 1, 0, 0,
                                0, 100, 167, 179, 182, 224, 13, 0, 202, 154, 59,
                                0, 143, 91, 0, 170, 170, 170, 170, 170, 170, 
                                0, 0, 232, 137, 4, 35, 199, 138, 255, 232, 244, 
                                255, 252, 205, 255, 255, 129 };
        ubyte arrayThree[] =  { 0, 222, 0, 0, 0, 224, 111, 64, 0, 0, 224, 255,
                                255, 255, 239, 65, 0, 0, 131, 0, 0, 0, 112, 63,
                                0, 143, 0, 100, 0, 0, 240, 61, 223, 136, 30, 28,
                                254, 116, 170, 1, 250, 89, 140, 66, 202, 192, 
                                243, 63, 251, 89, 140, 66, 202, 192, 243, 63, 
                                252, 89, 140, 66, 202, 192, 243, 63, 82, 211, 
                                187, 188, 232, 126, 255, 255, 255, 244, 255, 
                                239, 127, 1, 0, 0, 0, 10, 17, 0, 0, 248, 255, 0, 
                                88, 0, 91, 0, 0, 240, 255, 0, 0, 240, 157 };

        Console.WriteLine(("This example of the\n"  
            + "  BitConverter.ToString( byte[ ], int ) and \n" 
            + "  BitConverter.ToString( byte[ ], int, int ) \n"  
            + "methods generates the following output.\n"));
        WriteMultiLineByteArray(arrayOne, "arrayOne");
        WriteMultiLineByteArray(arrayTwo, "arrayTwo");
        WriteMultiLineByteArray(arrayThree, "arrayThree");
    } //main
} //BytesToStringDemo

/*
This example of the
  BitConverter.ToString( byte[ ], int ) and
  BitConverter.ToString( byte[ ], int, int )
methods generates the following output.

arrayOne
--------
00-00-00-00-80-3F-00-00-70-41-00-FF-7F-47-00-00-80-3B-00-00-
80-2F-49-46-83-05-4B-06-9E-3F-4D-06-9E-3F-50-06-9E-3F-1E-37-
BE-79-FF-FF-7F-FF-FF-7F-7F-01-00-00-00-C0-FF-00-00-80-FF-00-
00-80-7F

arrayTwo
--------
FF-FF-FF-00-00-14-00-21-00-00-00-01-00-00-00-64-A7-B3-B6-E0-
0D-00-CA-9A-3B-00-8F-5B-00-AA-AA-AA-AA-AA-AA-00-00-E8-89-04-
23-C7-8A-FF-E8-F4-FF-FC-CD-FF-FF-81

arrayThree
----------
00-DE-00-00-00-E0-6F-40-00-00-E0-FF-FF-FF-EF-41-00-00-83-00-
00-00-70-3F-00-8F-00-64-00-00-F0-3D-DF-88-1E-1C-FE-74-AA-01-
FA-59-8C-42-CA-C0-F3-3F-FB-59-8C-42-CA-C0-F3-3F-FC-59-8C-42-
CA-C0-F3-3F-52-D3-BB-BC-E8-7E-FF-FF-FF-F4-FF-EF-7F-01-00-00-
00-0A-11-00-00-F8-FF-00-58-00-5B-00-00-F0-FF-00-00-F0-9D
*/

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0, 2.0, 1.1, 1.0

.NET Compact Framework

Supported in: 2.0, 1.0

XNA Framework

Supported in: 1.0

Community Additions

ADD
Show: