web-dev-qa-db-ja.com

ToString( "X2")の意味は何ですか?

私はMD5暗号化を勉強していますが、Googleを使用してこのコードを見つけました:

    public string CalculateMD5Hash(string input)
    {

        // Primeiro passo, calcular o MD5 hash a partir da string
        MD5 md5 = System.Security.Cryptography.MD5.Create();
        byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(input);
        byte[] hash = md5.ComputeHash(inputBytes);

        // Segundo passo, converter o array de bytes em uma string haxadecimal
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < hash.Length; i++)
        {
            sb.Append(hash[i].ToString("X2"));
        }
        return sb.ToString();
    }

なぜToString("X2")を使用するのですか?通常のToStringとどう違うのですか?

67
Lai32290

文字列を2つの大文字の16進文字としてフォーマットします。

より詳細には、引数"X2"ToString()メソッドに文字列のフォーマット方法を伝える「フォーマット文字列」です。この場合、「X2」は文字列を16進数でフォーマットする必要があることを示します。

引数なしのbyte.ToString()は、パディングなしの自然な10進表現で数値を返します。

Microsoftは 標準の数値書式文字列 を文書化します。これは一般にすべてのプリミティブ数値型のToString()メソッドで機能します。これと同じパターンが他のタイプにも使用されます。たとえば、 標準の日付/時刻形式文字列DateTime.ToString()で使用できます。

85
TypeIA

byteを16進形式で出力します。

フォーマット文字列なし:13

「X2」フォーマット文字列:0D

http://msdn.Microsoft.com/en-us/library/aa311428(v = vs.71).aspx

41
Dave Zych

ToString( "X2")は入力を16進数で出力します

8
Dominic B.