C# 从int到hex的转换

C# 从int到hex的转换,c#,string,hex,C#,String,Hex,我想把一些整数转换成十六进制,但我得到的是这样的:“?|????plL4?h?N{”来自12345。为什么 int t = 12345; System.Security.Cryptography.MD5CryptoServiceProvider ano = new System.Security.Cryptography.MD5CryptoServiceProvider(); byte[] d_ano = System.Text.Encoding.ASCII.GetBytes(t.ToStr

我想把一些整数转换成十六进制,但我得到的是这样的:“?|????plL4?h?N{”来自12345。为什么

int t = 12345;

System.Security.Cryptography.MD5CryptoServiceProvider ano = new
System.Security.Cryptography.MD5CryptoServiceProvider();

byte[] d_ano = System.Text.Encoding.ASCII.GetBytes(t.ToString());
byte[] d_d_ano = ano.ComputeHash(d_ano);

string st_data1 = System.Text.Encoding.ASCII.GetString(d_d_ano);
string st_data = st_data1.ToString();

我在窗口窗体中使用它,而不是在控制台中。

如果您只想进行转换,为什么要使用加密

对于实际转换,请使用此代码段

int myNumber = 42;
String myHexNumber = myNumber.ToString("X");

否?

要将数字转换为十六进制,只需使用:

integerValue.ToString("X")
使用
Convert.ToString(intValue,16);


编辑:这种方法可以在所有基中使用,如
Convert。ToString(intValue,2)

看起来您想要将int转换为十六进制字符串

int t = 12345;
string hex = t.ToString("x");

@奥黛德:因为这回答了问题。问题不是“如何将整数转换为十六进制字符串?”而是“为什么我会得到我得到的结果”。@Ben Voigt-当答案中只有第一行时,我发表了评论。@Oded:我看到了。我的意思是,这里没有一篇文章回答这个单一的问题“为什么?”。只有Babak解释说,显示的代码正在加密该值(它是一个哈希函数,因此是单向加密,但仍然是加密).是什么让你认为这会将int转换成hex?MD5是一种哈希算法。它不会返回整数的十六进制值。所以它不是必需的?我不明白。我应该只使用Babak方式将int转换成字符串?你到底想做什么?“hex”是一个数字的十六进制表示法,当数字被写为人类可读的字符串时。它就是你需要的字符串吗?如果是,那么你不需要任何MD5。但是我想把我的int改成另一个数字,用户不知道。我只想得到新数字的十六进制。。。
integerValue.ToString("X")
int t = 12345;
string hex = t.ToString("x");