我是怎么做到的?
int a = 0x8080;
可以将其转换为
int b = MagicMethod(a); //output:8080
答案 0 :(得分:1)
编辑根据您的编辑,我必须说不可能。您尝试在相应的int值中转换十六进制值。这仅适用于不包含十六进制数字“A”到“F”的十六进制值。如果你受限于此,你可以
private int MagicConvert(int value)
{
string intValue = value.ToString("X");
int result = 0;
for (int i = 1; i <= intValue.Length; i++)
{
int digit;
if (!int.TryParse(intValue.Substring(intValue.Length - i, 1), out digit))
{
throw new ArgumentException("Hex value contains digits in the range of 'A' to 'F'.");
}
result += (int)Math.Pow(10, i - 1) * digit;
}
return result;
}
答案 1 :(得分:1)
如果您有一个字符串“0x8080”并想将其转换为整数0x8080,那么您可以这样做:
string s = "0x8080";
uint x = uint.Parse(s.Substring(2), System.Globalization.NumberStyles.AllowHexSpecifier);
UPDATE 他在上面写道“实际上,我收到了类似于0x808800的内容,我需要将其转换为#808080,以便在backColor中使用。”这对我来说意味着他需要将整数0x80808000转换为颜色,这可以使用Color.FromArgb
完成(参见MSDN)。
答案 2 :(得分:1)
您可以将数字转换为十六进制,如下所示:0x8080.ToString("x6")
6
是小数位数。
有关详细信息,请参阅documentation。