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

原创 2004年07月08日 13:54:00

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

C语言:将16进制字符串转化为int类型值

将16进制字符串值转换为 in
  • wl1524520
  • wl1524520
  • 2014年05月13日 14:09
  • 18886

C语言将int型数据转换为十六进制的字符串

方法一: int i =0; char * inttohex(int aa,char *buffer) { if (aa < 16) //递归结束条件 { ...
  • PZ0605
  • PZ0605
  • 2017年02月21日 11:31
  • 2762

C#数字、16进制字符串和字节之间互转

一个字节包含8个二进制位,一个十六进制可表示4个二进制位,所以,一个字节可以由2个十六进制表示总结如下: (1)一个byte 对应两位十六进制位,而不是八位(32位二进制位); (2)转化为十六进...
  • WuLex
  • WuLex
  • 2017年07月19日 22:37
  • 2590

颜色渐变、#16进制转RGB颜色(转Int)

思路:通过16进制字符串,对应拆分为RGB色值 举例:“#FB5D22” R: FB; G:5D; B:22; A: 初始颜色 b: 目标颜色...
  • d276031034
  • d276031034
  • 2016年07月07日 18:43
  • 488

6进制与浮点数(包括float和double)互转、十进制与16进制互换

  • 2015年05月05日 19:50
  • 24KB
  • 下载

前端笔试题笔记:拍扁多维数组、提取URL中的参数变成对象、string的trim()函数、判断Email地址、16进制颜色转rgb

拍扁多维数组、提取URL中的参数变成对象、实现string的trim()函数、判断Email地址、16进制颜色转rgb格式...
  • ldldong
  • ldldong
  • 2015年03月31日 21:50
  • 812

java String 直接 转 16进制

提供的方法主要解决string转16进制方法 方法是转成10进制的,如有需求自行换成16进制。 例如 把 “1E”转化成 16进制的0x1E /** * String 转 int * @pa...
  • u014716592
  • u014716592
  • 2016年02月18日 16:23
  • 311

Android开发:setAlpha()方法和常用RGB颜色表----颜色, r g b分量数值(int), 16进制表示 一一对应

杂家前文Android颜色对应表只有颜色和十六进制,有时候需要设置r g b分量的int值,如paint.setARGB(255, 127, 255, 212);就需要自己计算下分量的各个值。这里提供...
  • yanzi1225627
  • yanzi1225627
  • 2013年02月15日 11:07
  • 42695

Android开发:setAlpha()方法和常用RGB颜色表----颜色, r g b分量数值(int), 16进制表示 一一对应

Android颜色对照表只有颜色和十六进制,有时候需要设置r g b分量的int值,如paint.setARGB(255, 127, 255, 212);就需要自己计算下分量的各个值。这里提供一个带有...
  • Kavein_JCS
  • Kavein_JCS
  • 2015年05月06日 10:01
  • 333

Android开发:setAlpha()方法和常用RGB颜色表----颜色, r g b分量数值(int), 16进制表示 一一对应

杂家前文Android颜色对应表只有颜色和十六进制,有时候需要设置r g b分量的int值,如paint.setARGB(255, 127, 255, 212);就需要自己计算下分量的各个值。这里提供...
  • lovecoolyao
  • lovecoolyao
  • 2015年05月08日 22:56
  • 818
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c#中int 转string 16进制和16转double的方法
举报原因:
原因补充:

(最多只允许输入30个字)