C# 數據類型轉換(十六進制)

public static int ByteArrayToInt(byte[] data)
        {
            string temp = "";

            for (int i = 0; i < data.Length; i++)
                temp += data[i].ToString("X2");

            int value = int.Parse(temp, System.Globalization.NumberStyles.HexNumber);

            return value;
        }        

#region 數值類型轉換方法
        /// <summary>
        /// 10進制string轉16進制byte[]
        /// </summary>
        /// <param name="valStr">10進制string</param>
        /// <returns>16進制byte[]</returns>
        private byte[] GetHex(string valStr)
        {
            ushort val = ushort.Parse(valStr);
            byte[] hex = BitConverter.GetBytes(val);
            return hex;
        }
        /// <summary>
        /// 10進制string轉16進制byte[]
        /// </summary>
        /// <param name="valStr">10進制string</param>
        /// <param name="offset">偏移量</param>
        /// <returns></returns>
        private byte[] GetHex(string valStr, int offset)
        {
            int val = int.Parse(valStr) - offset;
            byte[] hex = BitConverter.GetBytes(val);
            return hex;
        }
        /// <summary>
        /// bool[]轉換成byte[]
        /// </summary>
        /// <param name="val">寫入的值,bool[]</param>
        /// <returns>byte[]</returns>
        private byte[] GetHex(bool[] val)
        {
            string value = "";
            for (int i = 0; i < val.Length; i++)
            {
                if (val[i])
                    value += "1";
                else
                    value += "0";
            }
            byte temp = Convert.ToByte(value,2);
            byte[] hex = BitConverter.GetBytes(temp);
            byte[] res = hex.Take(hex.Length - 1).ToArray();
            return res;
        }
        /// <summary>
        /// int[]轉換成byte[]
        /// </summary>
        /// <param name="val">寫入的值,int[]</param>
        /// <returns>byte[]</returns>
        private byte[] GetHex(int[] val)
        {
            byte[] tempValue = new byte[1024];
            int j = 0;
            for (int i = 0; i < val.Length; i++)
            {
                byte[] temp = BitConverter.GetBytes(val[i]);
                tempValue[j] = temp[1];
                tempValue[j + 1] = temp[0];
                j += 2;
            }
            byte[] res = tempValue.Take(val.Length * 2).ToArray();
            return res;
        }
        #endregion
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容