Zi 字媒體
2017-07-25T20:27:27+00:00
C# HEX to ASCII String [GOOGLE: HEX to ASCII]
資料來源: https://stackoverflow.com/questions/5613279/c-sharp-hex-to-ascii
驗證網頁: https://www.rapidtables.com/convert/number/hex-to-ascii.html
/*
//test code
byte[] bModelName = new byte[24];
Array.Copy(byBuf, 12, bModelName, 0, bModelName.Length);//5359535238362D4831202020 0853 0000 △6D6A
m_StrReaderModelName = "";
m_StrReaderModelName = System.Text.Encoding.Default.GetString(bModelName);
m_StrReaderModelName = CS_Chip.HexStr2AsciiStr(m_StrReaderModelName);
*/
class CS_Chip
{
public static string HexStr2AsciiStr(String hexString)
{
//5359535238362D4831202020 -> "SYSR86-H1 "
try
{
string ascii = string.Empty;
for (int i = 0; i < hexString.Length; i += 2)
{
String hs = string.Empty;
hs = hexString.Substring(i, 2);
uint decval = System.Convert.ToUInt32(hs, 16);
char character = System.Convert.ToChar(decval);
ascii += character;
}
return ascii;
}
catch (Exception ex) { Console.WriteLine(ex.Message); }
return string.Empty;
}
public static bool String2ByteArray(String StrData, byte[] pdata, int iLen = 16)//字串轉陣列
{
bool blnResult = true;
if (StrData.Length >= (iLen * 2))
{
int j = 0;
//for (int i = 0; i < StrData.Length; i += 2)
for (int i = (StrData.Length - 2); i >= 0; i -= 2)
{
try
{
int buf = Convert.ToInt32(StrData.Substring(i, 2), 16);
pdata[j] = Convert.ToByte(buf);
j++;
}
catch
{
blnResult = false;
break;
}
}
}
else
{
blnResult = false;
}
return blnResult;
}
public static bool ByteArray2String(byte[] pdata, ref String StrData,bool blnReverse=true)//陣列轉字串
{
StrData = "";
bool blnResult = true;
if(blnReverse == true)
{
Array.Reverse(pdata);
}
try
{
for(int i=0;i< pdata.Length;i++)
{
StrData+= Convert.ToString(pdata[i], 16).PadLeft(2, '0') + " ";
}
}
catch
{
blnResult = false;
}
return blnResult;
}
}
寫了
5860316篇文章,獲得
23313次喜歡