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