You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.8 KiB
60 lines
1.8 KiB
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
|
|
namespace Wood.Util
|
|
{
|
|
public class EncodingHelper
|
|
{
|
|
private static string HexStr = "0123456789abcdef";
|
|
private static char[] HexCharArr = HexStr.ToCharArray();
|
|
|
|
public static string ByteArrToHex(byte[] btArr)
|
|
{
|
|
char[] strArr = new char[btArr.Length * 2];
|
|
int i = 0;
|
|
foreach (byte bt in btArr)
|
|
{
|
|
strArr[i++] = HexCharArr[bt >> 4 & 0xf];
|
|
strArr[i++] = HexCharArr[bt & 0xf];
|
|
}
|
|
return new string(strArr);
|
|
}
|
|
|
|
public static byte[] HexToByteArr(string hexStr)
|
|
{
|
|
char[] charArr = hexStr.ToCharArray();
|
|
byte[] btArr = new byte[charArr.Length / 2];
|
|
int index = 0;
|
|
for (int i = 0; i < charArr.Length; i++)
|
|
{
|
|
int highBit = HexStr.IndexOf(charArr[i]);
|
|
int lowBit = HexStr.IndexOf(charArr[++i]);
|
|
btArr[index] = (byte)(highBit << 4 | lowBit);
|
|
index++;
|
|
}
|
|
return btArr;
|
|
}
|
|
|
|
public static string ByteArrToHexDefault(byte[] btArr)
|
|
{
|
|
StringBuilder sb = new StringBuilder();
|
|
foreach (byte b in btArr)
|
|
{
|
|
sb.Append(b.ToString("X2"));
|
|
}
|
|
return sb.ToString();
|
|
}
|
|
|
|
public static byte[] HexToByteArrDefault(string hexStr)
|
|
{
|
|
byte[] inputArr = new byte[hexStr.Length / 2];
|
|
for (int i = 0; i < hexStr.Length / 2; i++)
|
|
{
|
|
int v = Convert.ToInt32(hexStr.Substring(i * 2, 2), 16);
|
|
inputArr[i] = (byte)v;
|
|
}
|
|
return inputArr;
|
|
}
|
|
}
|
|
}
|
|
|