如何转换以下内容?

2934(整数)到B76(十六进制)

让我解释一下我要做什么。我的数据库中有以整数形式存储的用户id。而不是让用户引用他们的id,我想让他们使用十六进制值。主要原因是它比较短。

所以我不仅需要从整数变成十六进制还需要从十六进制变成整数。

在c#中有简单的方法来做到这一点吗?


当前回答

整数到十六进制:

Int a = 72; 控制台。WriteLine(“{0:X}”);

十六进制到整型:

int b = 0xB76; Console.WriteLine (b);

其他回答

就像@Joel C一样,我认为这是AB问题。 有一个现有的算法,我认为更适合的需求,如所描述的,那就是uuencode,我相信它有许多公共领域的实现,也许调整以消除看起来非常类似于0/O的字符。很可能产生明显更短的字符串。我认为这就是URL缩短者使用的。

微软网络框架

非常好的解释和少数编程行 好工作

// 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;
        }
    }

整数到十六进制:

Int a = 72; 控制台。WriteLine(“{0:X}”);

十六进制到整型:

int b = 0xB76; Console.WriteLine (b);

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