C#十進制與十六進制轉換

C#十進制與十六進制轉換 C#中關於十進制,十六進制的轉換,能夠用如下幾種方法

(1)

string BID="16";//十六進制數

int a=Convert.ToInt32(BID, 16);//將「16」當成是一個十六進制數,現將其轉成十進制數,此時a的值爲22

(2)

int dddddd = 16;//任意數
  string dddddddd = Convert.ToString(dddddd, 16);//「16」當成是一個十進制數,現將其轉成十六進制數,此時值爲「10」

或者

int dddddd = 0x16;
                string dddddddd = Convert.ToString(dddddd, 10);//此時值爲「22」

(3)

本身寫方法實現



  public int HexToDec(string strHex)
        {
            int iRet = 0;
            char[] strArray;
            int i = 0;
            strHex = strHex.Trim();
            strHex = strHex.ToUpper();
            strArray = strHex.ToCharArray();
            i = strArray.Length;
            if (i <= 0)
                return -1;

            if (strArray[i - 1] != 'H')
            {
                try
                {
                    iRet = Convert.ToInt32(strHex);
                }
                catch (FrameException ex)
                {
                    throw ex;
                }
                catch (Exception e)
                {
                    throw new FrameException("16進制轉爲10進制", "2", e.Message, DateTime.Now);
                }
            }
            else
            {
                for (int j = 0; j < i - 1; j++)
                {
                    if (strArray[j] >= '0' && strArray[j] <= '9')
                    {
                        iRet = iRet * 16 + strArray[j] - '0';
                    }
                    else if (strArray[j] >= 'A' && strArray[j] <= 'F')
                    {
                        iRet = iRet * 16 + strArray[j] - 'A' + 10;
                    }
                    else
                    {
                        throw new FrameException("16進制轉爲10進制", "2", "輸入數據非法", DateTime.Now);
                    }

                }
            }
            return iRet;web

相關文章
相關標籤/搜索