当前位置:编程学习 > C#/ASP.NET >>

C#如何把十六进制字符串转换为十进制数值,需要进行计算,或者直接让十六进制数值进行计算

例如,字符串是3A,怎样让它变为十进制的58,或者让它直接与十六进制的数值进行计算呢? C# 类型转换 十六进制 --------------------编程问答-------------------- string str="3A";
byte num=Convert.ToByte(str,16);
--------------------编程问答--------------------
引用 1 楼 leafmao 的回复:
string str="3A";
byte num=Convert.ToByte(str,16);

正解 --------------------编程问答--------------------
int result = int.Parse("3A", System.Globalization.NumberStyles.AllowHexSpecifier);
            Console.WriteLine(result);//输出58
--------------------编程问答-------------------- 现成代码,可以转一串哦[code=csharp]public static byte[] HexStringToByteArray(string s)
{
    s = s.Replace(" ", "");
    byte[] buffer = new byte[s.Length / 2];
    for (int i = 0; i < s.Length; i += 2)
        buffer[i / 2] = (byte)Convert.ToByte(s.Substring(i, 2), 16);
    return buffer;
}

public static string ByteArrayToHexString(byte[] data)
{
    StringBuilder sb = new StringBuilder(data.Length * 3);
    foreach (byte b in data)
        sb.Append(Convert.ToString(b, 16).PadLeft(2, '0'));
    return sb.ToString().ToUpper();
}

public static string ByteArrayToHexString2(byte[] data)
{
    string s = BitConverter.ToString(data).Replace("-", "");
    return s;
}[code] --------------------编程问答--------------------
public static byte[] HexStringToByteArray(string s)
{
    s = s.Replace(" ", "");
    byte[] buffer = new byte[s.Length / 2];
    for (int i = 0; i < s.Length; i += 2)
        buffer[i / 2] = (byte)Convert.ToByte(s.Substring(i, 2), 16);
    return buffer;
}

public static string ByteArrayToHexString(byte[] data)
{
    StringBuilder sb = new StringBuilder(data.Length * 3);
    foreach (byte b in data)
        sb.Append(Convert.ToString(b, 16).PadLeft(2, '0'));
    return sb.ToString().ToUpper();
}

public static string ByteArrayToHexString2(byte[] data)
{
    string s = BitConverter.ToString(data).Replace("-", "");
    return s;
}
--------------------编程问答--------------------
int a = int.Parse("3A", NumberStyles.HexNumber);

这样就可以转成10进制的了 --------------------编程问答-------------------- 如果是一串十六进制的数字该怎么转化?
--------------------编程问答-------------------- 看看这个例子:http://code.msdn.microsoft.com/CSHexStringByteArrayConvert-a80e955d --------------------编程问答--------------------
引用 楼主 u011671566 的回复:
例如,字符串是3A,怎样让它变为十进制的58,或者让它直接与十六进制的数值进行计算呢?

+1 --------------------编程问答--------------------

引用 7 楼 u011803898 的回复:
如果是一串十六进制的数字该怎么转化?

string s = "";  //一串字符
string[] a = s.ToString().Split(' ');
for(int i = 0; i < a.Length; i ++)
{
   int b = Convert.ToInt32(a[i],16);
}
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,