tijian_jichuang/Code/SmartUpdater/Bytes.cs

63 lines
2.1 KiB
C#
Raw Permalink Normal View History

2025-02-20 11:54:48 +08:00
using System;
using System.Text;
namespace EAS.Distributed
{
static class Bytes
{
/// <summary>
/// <20><>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>ΪHEX<45>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
/// </summary>
/// <param name="buffer">Ҫת<D2AA><D7AA><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD>顣</param>
/// <returns><3E><><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD></returns>
public static string ToHex(this byte[] buffer)
{
if (buffer == null)
return null;
if (buffer.Length == 0)
return string.Empty;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < buffer.Length; i++)
{
sb.Append(buffer[i].ToString("X2"));
}
return sb.ToString();
}
/// <summary>
/// <20><><EFBFBD><EFBFBD>ʽΪ<CABD><CEAA>XXXX<58><58><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD>xx<78><78>Ϊÿһ<C3BF><D2BB><EFBFBD>ֽڵ<D6BD>ʮ<EFBFBD><CAAE><EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD>ʾ<EFBFBD><CABE>ת<EFBFBD><D7AA>Ϊ<EFBFBD><CEAA>Ӧ<EFBFBD><D3A6><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD>
/// </summary>
/// <param name="s">Ҫת<D2AA><D7AA><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD></param>
/// <returns><3E><><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD>顣</returns>
/// <exception cref="ArgumentNullException">s Ϊ<><CEAA><EFBFBD><EFBFBD><EFBFBD>á<EFBFBD></exception>
/// <exception cref="ArgumentException"><3E>ַ<EFBFBD><D6B7><EFBFBD> s <20><>ʽ<EFBFBD><CABD>Ч<EFBFBD><D0A7></exception>
/// <remarks><3E><><EFBFBD><EFBFBD> s Ϊ<><CEAA><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>򷵻س<F2B7B5BB><D8B3><EFBFBD>Ϊ 0 <20><><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD>顣</remarks>
public static byte[] FromHex(this string s)
{
if (s == null)
throw new ArgumentNullException("s", "Ҫת<D2AA><D7AA><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD><C7BF><EFBFBD><EFBFBD>á<EFBFBD>");
if (s.Trim() == string.Empty)
return new byte[0];
if (s.Length % 2 != 0)
throw new ArgumentNullException("s", "Ҫת<D2AA><D7AA><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȱ<EFBFBD><C8B1><EFBFBD>Ϊ2<CEAA><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
byte[] buffer = new byte[s.Length / 2];
for (int i = 0; i < buffer.Length; i++)
{
string Text = s.Substring(i * 2, 2);
try
{
buffer[i] = byte.Parse(Text, System.Globalization.NumberStyles.AllowHexSpecifier);
}
catch (System.FormatException exc)
{
throw new System.ArgumentException("<22><>Ч<EFBFBD><D0A7><EFBFBD>ֽ<EFBFBD><D6BD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD>", "s", exc);
}
}
return buffer;
}
}
}