将整数字符串转换为十六进制字符串

9

如何将表示整数的字符串(例如"4322566")转换为十六进制字符串?


1
你想将一个等于 "4322566" 的字符串生成为 "41F506",是吗? - jball
是的,那就是我想要的。 - Robert
5个回答

10

string s = int.Parse("4322566").ToString("X");


3
你可能希望使用TryParse使这个更加容错。 - Aren
当我尝试转换2309737967时,我会收到一个溢出异常。 - Robert
1
2309737967超过了int.MaxValue(2147483647)。请使用long。 - Femaref

2
int temp = 0;
string hexOut = string.Empty;
if(int.TryParse(yourIntString, out temp))
{
    hexOut = temp.ToString("X");
}

为了处理更大的数字,根据您的评论,可以编写一个方法:

public static string ConvertToHexString(string intText)
{
    long temp = 0; 
    string hexOut = string.Empty; 
    if(long.TryParse(intText, out temp))
    { 
        hexOut = temp.ToString("X"); 
    } 
    return hexOut;
}

当我尝试转换2309737967时,我会收到一个溢出异常。 - Robert
将temp的类型更改为“long”,并使用“long.TryParse”。 - jball

1
尝试使用.ToString("X")

1

或者如果您更喜欢小写十六进制,则使用.ToString("x")。


0

尝试

int otherVar= int.Parse(hexstring ,
System.Globalization.NumberStyles.HexNumber);

1
int -> string,而不是string -> int。 - Femaref

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接