public class Tools
{
static public byte[] HexStringSToByteArray(string hexValues)
{
string[] hexValuesSplit = hexValues.Split(' ');
byte[] val = new byte[hexValuesSplit.Length];
int i = 0;
foreach (string hex in hexValuesSplit)
{
int value = HexStringToInt(hex);
val[i] = (byte)value;
i++;
}
return val;
}
/// <summary>
/// 16进制转byte[]
/// </summary>
/// <param name="Str"></param>
/// <returns></returns>
static public string HexToString(byte[] Str)
{
string String = Encoding.Default.GetString(Str);
byte[] str = new byte[Str.Length / 2];
for (int i = 0; i < str.Length; i++)
{
int temp = Convert.ToInt32(String.Substring(i * 2, 2), 16);
str[i] = (byte)temp;
}
string endstr = "";
for (int i = 0; i < str.Length; i++)
{
endstr += str[i];
}
return endstr;
}
/// <summary>
/// 16进制转int
/// </summary>
/// <param name="hex"></param>
/// <returns></returns>
static public int HexStringToInt(string hex)
{
int num1 = 0;
int num2 = 0;
char[] nums = hex.ToCharArray();
if (hex.Length == 2)
{
for (int i = 0; i < nums.Length; i++)
{
string strNum = nums[i].ToString().ToUpper();
switch (strNum)
{
case "A":
strNum = "10";
break;
case "B":
strNum = "11";
break;
case "C":
strNum = "12";
break;
case "D":
strNum = "13";
break;
case "E":
strNum = "14";
break;
case "F":
strNum = "15";
break;
default:
break;
}
if (i == 0)
{
num1 = int.Parse(strNum) * 16;
}
if (i == 1)
{
num2 = int.Parse(strNum);
}
}
}
return num1 + num2;
}
}
C#字符串转16进制byte
最新推荐文章于 2023-01-06 14:29:17 发布