如何转换以下内容?
2934(整数)到B76(十六进制)
让我解释一下我要做什么。我的数据库中有以整数形式存储的用户id。而不是让用户引用他们的id,我想让他们使用十六进制值。主要原因是它比较短。
所以我不仅需要从整数变成十六进制还需要从十六进制变成整数。
在c#中有简单的方法来做到这一点吗?
如何转换以下内容?
2934(整数)到B76(十六进制)
让我解释一下我要做什么。我的数据库中有以整数形式存储的用户id。而不是让用户引用他们的id,我想让他们使用十六进制值。主要原因是它比较短。
所以我不仅需要从整数变成十六进制还需要从十六进制变成整数。
在c#中有简单的方法来做到这一点吗?
当前回答
十六进制:
string hex = intValue.ToString("X");
整数:
int intValue = int.Parse(hex, System.Globalization.NumberStyles.HexNumber)
其他回答
尝试以下将其转换为十六进制
public static string ToHex(this int value) {
return String.Format("0x{0:X}", value);
}
然后再回来
public static int FromHex(string value) {
// strip the leading 0x
if ( value.StartsWith("0x", StringComparison.OrdinalIgnoreCase)) {
value = value.Substring(2);
}
return Int32.Parse(value, NumberStyles.HexNumber);
}
整数到十六进制:
Int a = 72; 控制台。WriteLine(“{0:X}”);
十六进制到整型:
int b = 0xB76; Console.WriteLine (b);
打印十六进制值的整数与零填充(如果需要):
int intValue = 1234;
Console.WriteLine("{0,0:D4} {0,0:X3}", intValue);
https://learn.microsoft.com/en-us/dotnet/standard/base-types/how-to-pad-a-number-with-leading-zeros
// 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")获得小写十六进制数字(同样用于更多数字)。
int valInt = 12;
Console.WriteLine(valInt.ToString("X")); // C ~ possibly single-digit output
Console.WriteLine(valInt.ToString("X2")); // 0C ~ always double-digit output