[c#]代码库
private static Byte[] ConvertFrom(string strTemp)
{
try
{
if (Convert.ToBoolean(strTemp.Length & 1))//数字的二进制码最后1位是1则为奇数
{
strTemp = "0" + strTemp;//数位为奇数时前面补0
}
Byte[] aryTemp = new Byte[strTemp.Length / 2];
for (int i = 0; i < (strTemp.Length / 2); i++)
{
aryTemp[i] = (Byte)(((strTemp[i * 2] - '0') << 4) | (strTemp[i * 2 + 1] - '0'));
}
return aryTemp;//高位在前
}
catch
{ return null; }
}
/// <summary>
/// BCD码转换16进制(压缩BCD)
/// </summary>
/// <param name="strTemp"></param>
/// <returns></returns>
public static Byte[] ConvertFrom(string strTemp, int IntLen)
{
try
{
Byte[] Temp = ConvertFrom(strTemp.Trim());
Byte[] return_Byte = new Byte[IntLen];
if (IntLen != 0)
{
if (Temp.Length < IntLen)
{
for (int i = 0; i < IntLen - Temp.Length; i++)
{
return_Byte[i] = 0x00;
}
}
Array.Copy(Temp, 0, return_Byte, IntLen - Temp.Length, Temp.Length);
return return_Byte;
}
else
{
return Temp;
}
}
catch
{ return null; }
}
/// <summary>
/// 16进制转换BCD(解压BCD)
/// </summary>
/// <param name="AData"></param>
/// <returns></returns>
public static string ConvertTo(Byte[] AData)
{
try
{
StringBuilder sb = new StringBuilder(AData.Length * 2);
foreach (Byte b in AData)
{
sb.Append(b >> 4);
sb.Append(b & 0x0f);
}
return sb.ToString();
}
catch { return null; }
}
by: 发表于:2017-12-27 10:08:28 顶(0) | 踩(0) 回复
??
回复评论