分享
 
 
 

c#中int 转string 16进制和16转double的方法

王朝c#·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

0x开头的16进制没有负数和小数

#region change hex to double

private Double HexConverToDouble(string hexString)

{

if (hexString == "")

{

return 0;

}

string data;

if (hexString.StartsWith("0x"))

{

data = hexString.Substring(2);

}

else

{

data = hexString;

}

char[] eachData = data.ToCharArray();

Double result = 0;

for (int i = 0; i < eachData.Length; i++)

{

char charValue = eachData[i];//eachData[m];

Double x = 16;//如果是八进制则写成8就可以

Double y = System.Convert.ToDouble(eachData.Length - i - 1);

switch (charValue)

{

case '0':

break;

case '1':

result += 1 * Math.Pow(x,y);

break;

case '2':

result += 2 * Math.Pow(x,y);

break;

case '3':

result += 3 * Math.Pow(x,y);

break;

case '4':

result += 4 * Math.Pow(x,y);

break;

case '5':

result += 5 * Math.Pow(x,y);

break;

case '6':

result += 6 * Math.Pow(x,y);

break;

case '7':

result += 7 * Math.Pow(x,y);

break;

case '8':

result += 8 * Math.Pow(x,y);

break;

case '9':

result += 9 * Math.Pow(x,y);

break;

case 'A':

result += 10 * Math.Pow(x,y);

break;

case 'B':

result += 11 * Math.Pow(x,y);

break;

case 'C':

result += 12 * Math.Pow(x,y);

break;

case 'D':

result += 13 * Math.Pow(x,y);

break;

case 'E':

result += 14 * Math.Pow(x,y);

break;

case 'F':

result += 15 * Math.Pow(x,y);

break;

case 'a':

result += 10 * Math.Pow(x,y);

break;

case 'b':

result += 11 * Math.Pow(x,y);

break;

case 'c':

result += 12 * Math.Pow(x,y);

break;

case 'd':

result += 13 * Math.Pow(x,y);

break;

case 'e':

result += 14 * Math.Pow(x,y);

break;

case 'f':

result += 15 * Math.Pow(x,y);

break;

default :

break;

}

}

return result;

}

#region convert the int32 to hex(string) //这个方法通用性不好,只能是int的转string的16进制

private string specInttoString(int source)//被主要方法调用的一个辅助方法

{

if(source <10)

{

return source.ToString();

}

else

{

switch(source)

{

case 10:

return "A";

case 11:

return "B";

case 12:

return "C";

case 13:

return "D";

case 14:

return "E";

case 15:

return "F";

default:

return "";

}

}

}

private string INTtoHEx(int source)//主要方法

{

if(source <10)

{

return "0x" + source.ToString();

}

else if (source <=15)

{

return "0x" + specInttoString(source);

}

else

{

int raiseNum = 16;

int addNum = 16;

int positionNum = 1;

while((source - addNum) >= 0)

{

positionNum++;

addNum = addNum * raiseNum;

}

int[] valuePositionNum = new int[positionNum];

for(int i = 0;i {

valuePositionNum[i] = 0;

}

int[] valueAddNum = new int[positionNum];

for(int i = 0;i {

valueAddNum[i] = Convert.ToInt32( Math.Pow(raiseNum,i));

}

int[] decreaseSource = new int[positionNum];

decreaseSource[positionNum -1] = source;

for(int i = positionNum -1;i>=0;i--)

{

while((decreaseSource[i] - valueAddNum[i] ) >=0)

{

if(i != 0)

decreaseSource[i -1] = decreaseSource[i] - valueAddNum[i] ;

valuePositionNum[i]++;

valueAddNum[i]= valueAddNum[i] +Convert.ToInt32( Math.Pow(raiseNum,i));

}

}

string[] stringValuePositionNum = new string[positionNum];

for(int i = 0;i {

stringValuePositionNum[i] = specInttoString(valuePositionNum[i]);

}

string result = "0x";

for(int i = positionNum -1;i>=0;i--)

{

result = result + stringValuePositionNum[i];

}

return result;

// string[] hexList = new string[positionNum + 1];

// hexList[positionNum] = specInttoString(positionNum);

}

}

#endregion

#endregion

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有