将int转换为十六进制格式0xyy c#

本文关键字:格式 0xyy 十六进制 int 转换 | 更新日期: 2023-09-27 17:50:18

我需要写一个函数,它接收一个类型为int(十进制)的参数,并返回string包含十六进制的int值,但格式为0xyy
更重要的是,我希望答案是在4字节的固定格式例如:

int b = 358;
string ans = function(b); 

在这种情况下ans = "0x00 0x00 0x01 0x66"

int a = 3567846; 
string ans = function(a);

在这种情况下ans = "0x00 0x36 0x70 0xE6"

将int转换为十六进制格式0xyy c#

这应该符合你的例子:

static string Int32ToBigEndianHexByteString(Int32 i)
{
    byte[] bytes = BitConverter.GetBytes(i);
    string format = BitConverter.IsLittleEndian
        ? "0x{3:X2} 0x{2:X2} 0x{1:X2} 0x{0:X2}"
        : "0x{0:X2} 0x{1:X2} 0x{2:X2} 0x{3:X2}";
    return String.Format(format, bytes[0], bytes[1], bytes[2], bytes[3]);
}

我认为你想要的格式是在类似的行

int ahex = 3567846;
byte[] inthex = BitConverter.GetBytes(ahex);
Console.WriteLine("0x"+ BitConverter.ToString(inthex).Replace("-"," 0x"));
int val = 1;
string conv = ("0x" + val.ToString("X4"));