如何转换以下内容?
2934(整数)到B76(十六进制)
让我解释一下我要做什么。我的数据库中有以整数形式存储的用户id。而不是让用户引用他们的id,我想让他们使用十六进制值。主要原因是它比较短。
所以我不仅需要从整数变成十六进制还需要从十六进制变成整数。
在c#中有简单的方法来做到这一点吗?
如何转换以下内容?
2934(整数)到B76(十六进制)
让我解释一下我要做什么。我的数据库中有以整数形式存储的用户id。而不是让用户引用他们的id,我想让他们使用十六进制值。主要原因是它比较短。
所以我不仅需要从整数变成十六进制还需要从十六进制变成整数。
在c#中有简单的方法来做到这一点吗?
当前回答
微软网络框架
非常好的解释和少数编程行 好工作
// Store integer 182
int intValue = 182;
// Convert integer 182 as a hex in a string variable
string hexValue = intValue.ToString("X");
// Convert the hex string back to the number
int intAgain = int.Parse(hexValue, System.Globalization.NumberStyles.HexNumber);
PASCAL >> c#
http://files.hddguru.com/download/Software/Seagate/St_mem.pas
从老式的pascal转换成c#的程序
/// <summary>
/// Conver number from Decadic to Hexadecimal
/// </summary>
/// <param name="w"></param>
/// <returns></returns>
public string MakeHex(int w)
{
try
{
char[] b = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
char[] S = new char[7];
S[0] = b[(w >> 24) & 15];
S[1] = b[(w >> 20) & 15];
S[2] = b[(w >> 16) & 15];
S[3] = b[(w >> 12) & 15];
S[4] = b[(w >> 8) & 15];
S[5] = b[(w >> 4) & 15];
S[6] = b[w & 15];
string _MakeHex = new string(S, 0, S.Count());
return _MakeHex;
}
catch (Exception ex)
{
throw;
}
}
其他回答
Use:
int myInt = 2934;
string myHex = myInt.ToString("X"); // Gives you hexadecimal
int myNewInt = Convert.ToInt32(myHex, 16); // Back to int again.
有关更多信息和示例,请参见如何:在十六进制字符串和数字类型之间转换(c#编程指南)。
int valInt = 12;
Console.WriteLine(valInt.ToString("X")); // C ~ possibly single-digit output
Console.WriteLine(valInt.ToString("X2")); // 0C ~ always double-digit output
// Store integer 182
int intValue = 182;
// Convert integer 182 as a hex in a string variable
string hexValue = intValue.ToString("X");
// Convert the hex string back to the number
int intAgain = int.Parse(hexValue, System.Globalization.NumberStyles.HexNumber);
从http://www.geekpedia.com/KB8_How-do-I-convert-from-decimal-to-hex-and-hex-to-decimal.html
提示(来自评论):
使用. tostring ("X4")获得前导0的4位数字,或使用. tostring ("X4")获得小写十六进制数字(同样用于更多数字)。
就像@Joel C一样,我认为这是AB问题。 有一个现有的算法,我认为更适合的需求,如所描述的,那就是uuencode,我相信它有许多公共领域的实现,也许调整以消除看起来非常类似于0/O的字符。很可能产生明显更短的字符串。我认为这就是URL缩短者使用的。
十六进制:
string hex = intValue.ToString("X");
整数:
int intValue = int.Parse(hex, System.Globalization.NumberStyles.HexNumber)