C# 字串轉BYTE陣列 、 BYTE陣列轉字串 和 BYTE陣列轉16進為字串

C# 字串轉BYTE陣列 、 BYTE陣列轉字串 和 BYTE陣列轉16進為字串

C# 字串轉BYTE陣列 、 BYTE陣列轉字串 和 BYTE陣列轉16進為字串


 

 

BYTE陣列轉16進為字串

 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;
        } 


 16進為字串BYTE陣列

        public static bool String2ByteArray(byte[] pkey, String StrData, 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);
                        pkey[j] = Convert.ToByte(buf);
                        j++;
                    }
                    catch
                    {
                        blnResult = false;
                        break;
                    }
                }
            }
            return blnResult;
        }

string類型轉成byte[]:

byte[] byteArray = System.Text.Encoding.Default.GetBytes ( str );

反過來,byte[]轉成string:

string str = System.Text.Encoding.Default.GetString ( byteArray );

string類型轉成ASCII byte[]:(”01″ 轉成 byte[] = new byte[]{ 0x30, 0x31})

byte[] byteArray = System.Text.Encoding.ASCII.GetBytes ( str );

ASCII byte[] 轉成string:(byte[] = new byte[]{ 0x30, 0x31} 轉成 “01”)

string str = System.Text.Encoding.ASCII.GetString ( byteArray );

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *