在 C# 中转换十六进制值



我正在尝试将两位十六进制值显示为 16 位十六进制值。值 =81 成0x0000000000000081。我已经完成了以下代码:

public long GetHexNumber(long d)
    {
        return long.Parse(d.ToString("X"), System.Globalization.NumberStyles.HexNumber);
    }

但是上面的代码返回相同的十六进制值,即 81 .请帮忙

像这样使用 Int64.ToString((:

    public string GetHexNumber(long d)
    {
        return d.ToString("X16");
    }

X...用于转换为十六进制字符串

16... 用于将其转换为 16 位字符串

如果您希望它有一个前导"0x",请将其更改为:

    return "0x" + d.ToString("X16");

让我们从提供一个很好的测试示例开始,我们想要

  1. 具有整数(例如 81 (
  2. 对待好像它不是进制,而是十六进制0x81(我们机械地添加0x(
  3. 获取其值 ( 0x81 == 129 (

像这样:

 Value -> 0xValue 

如果是您的情况,解决方案可以是

 // static: we don't have any need in "this" instance
 public static long GetHexNumber(long value) {
   return Convert.ToInt64(value.ToString(), 16);
 } 

测试

 long test = 81;
 Console.WriteLine(81);
 // C# 6.0+ string interpolating
 // if don't use C# 6.0, put it as formatting: 
 // Console.WriteLine("{0:X16}", GetHexNumber(test)); 
 Console.WriteLine($"{GetHexNumber(test):X16}");

最新更新