操作16进制的数据,对它进行基础的加减操作,梳理了两个不同思路的方法,记录一下。
一、方法1如下:
// <summary>
// 对十六进制数做加法,方式一
// </summary>
// <param name="iNum">要加多少(十进制)</param>
public string AddHex(int iNum)
{
for(int i = 0; i < iNum; i++)
{
string strHex = "00FF00FF0001";
string strHexLower = strHex.ToLower();
int iLocation = 11;
char[ ] ch = strHexLower.toCharArray();
char cTemp = ++ch[iLocation];
while(cTemp > 'f')
{
ch[iLocation] = '0';
iLocation--;
ch[iLocation]++;
cTemp = ch[iLocation];
}
if(cTemp > '9' && cTemp < 'a' )
{
ch[iLocation] = 'a';
}
else
{
ch[iLocation] = cTemp;
}
strHexLower = String.Concat(ch);
return strHexLower.toUpper();
}
}
二、方法2如下:
// <summary>
// 对十六进制数做加法,方式二:
// </summary>
// <param name="iNum">要加多少(十进制)</param>
public string AddHex(int iNum)
{
//int32数据类型范围为2的31次方(10位数,2开头); long(64位)数据类型范围为2的63次方(19位,9开头)
string strHex = "00FF00FF0001";
//int64.parse()是将一个字符串转化为64位整数类型;
//strHex是输入的字符串;
//System.Globalization.NumberStyles.HexNumber表示strHex这个字符串是十六进制格式的字符串
int64 iHex10 = int64.parse( strHex , System.Globalization.NumberStyles.HexNumber );
iHex10 = iHex10 + iNum;
//iHex10是要转换的整数
//16表示转换为16进制
//这行代码表示,将 iHex10转换为16进制表示
return Convert.ToString( iHex10 , 16 );
}