这些意味着什么" {0,2:X2}"在语句String.Format(" {0,2:X2}",b);

时间:2013-02-26 09:57:43

标签: asp.net sha1 string.format

代码:

        SHA1 sha = new SHA1CryptoServiceProvider();
        string hashedValue = string.Empty;
        //hash the data
        byte[] hashedData = sha.ComputeHash(Encoding.Unicode.GetBytes(str));

        //loop through each byte in the byte array
        foreach (byte b in hashedData)
        {
            //convert each byte and append
            hashedValue += String.Format("{0,2:X2}", b);
        }

我搜索了传递给String.Format()的参数,但没能完全理解它。

提前致谢!

2 个答案:

答案 0 :(得分:3)

Formatting the string in hexadecimal format...
  1. X =十六进制格式

  2. 2 = 2个字符

答案 1 :(得分:2)

它基本上只是以大写十六进制格式格式化字符串 - 请参阅the docs

  

十六进制(“X”)格式说明符将数字转换为十六进制数字字符串。格式说明符的大小写表示是否对大于9的十六进制数字使用大写或小写字符。

这种特殊格式称为Composite Formatting,因此要将其分解:

{0 = parameterIndex, 2 = alignment :X2 = formatString}