簡體   English   中英

在C#中,如何將字節數組轉換為十六進制數字字符串?

[英]In C#, how do I convert an array of bytes into a string of hex numbers?

在C#中,將字節數組轉換為十六進制數字字符串的最簡潔方法是什么?

BitConverter.ToString http://msdn.microsoft.com/zh-cn/library/system.bitconverter.tostring.aspx

您會在字符串的字節之間得到連字符,但是很容易刪除它們。

這應該可以工作... BitConverter更好,但這可以為您提供更多控制(沒有連字符),並且如果您願意的話,您可以喜歡lambda :)

 public string byteToHex(byte[] byteArray) {
    StringBuilder result = new StringBuilder();
    foreach (byte b in byteArray) {
        result.AppendString(b.ToString("X2"));
    }
    return result.ToString();
 }

這是我需要小寫十六進制時使用的擴展名。 例如,Facebook需要小寫字母來簽名POST數據。

    private static string ToLowerCaseHexString(this IEnumerable<byte> hash)
    {
        return hash
            .Select(b => String.Format("{0:x2}",
                                       b))
            .Aggregate((a, b) => a + b);
    }

在linq .Aggregate上使用StringBuilder可能會更快,但是我傳遞的字節數組很短。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM