C#将Int转换为两个十六进制字节?

C#将Int转换为两个十六进制字节?,c#,hex,C#,Hex,我有一个整数,需要转换成四位十六进制值 例如,假设int值为16。我要找的是一条从16岁到16岁的路 0x00 0x10 任何建议都将不胜感激 移动它!掩盖它!掩盖它!它 x2格式说明符表示2位十六进制值 好的,显然你只需要两个字节。十六进制在这里不相关 byte lowByte = (byte)(n & 0xff); byte highByte = (byte)(n >> 8 & 0xff); 或者,一个更通用的解决方案是按字节数组(然后您可以将其用于字符串或

我有一个整数,需要转换成四位十六进制值

例如,假设int值为16。我要找的是一条从16岁到16岁的路 0x00 0x10


任何建议都将不胜感激

移动它!掩盖它!掩盖它!它

x2
格式说明符表示2位十六进制值


好的,显然你只需要两个字节。十六进制在这里不相关

byte lowByte = (byte)(n & 0xff);
byte highByte = (byte)(n >> 8 & 0xff);

或者,一个更通用的解决方案是按字节数组(然后您可以将其用于字符串或其他数据类型)

这将以“FF”格式返回它们,您可以通过在ToString()之后添加“0x”来自己添加它们:

试试这个:

var input = 16;

var bytes = new byte[2];
bytes[0] = (byte)(input >> 8);  // 0x00
bytes[1] = (byte)input;         // 0x10

var result = (bytes[0] << 8)
           | bytes[1];

// result == 16
var输入=16;
var字节=新字节[2];
字节[0]=(字节)(输入>>8);//0x00
字节[1]=(字节)输入;//0x10

var result=(字节[0]这里有一个正则表达式,只是为了好玩:

Regex.Replace(number.ToString("X4"), "..", "0x$0 ").TrimEnd();

你的意思是你想要整数的十六进制字符串表示法吗?我只知道……给定一个整数16,我需要生成2个字节。第一个字节值是0x00,第二个字节值是0x10。最终结果是0000 0000 0001 0000,它=16。我的程序需要将结果切碎。换句话说,取前8位并显示它作为0x00,然后将最后8位显示为0x10。总之,我需要从16->0x00 0x10。int是32位,所以需要4个字节(8个十六进制数字)要表示所有可能的值…我不打算使用字符串…我拥有的是一个数组。数组中有两个位置需要存储值16。数组的第一个位置需要0x00,第二个位置需要0x01。请注意,这些不是字符串。数组中存储的实际上是字节,因此您也可以将其视为array[0]=0和数组[1]=10@TackyTacky:如果你需要一个数组,
位转换器
(如果只需要两个,则移位)更合适,而十六进制则无关紧要。如果我单独这么做,第二个字节就不会得到前缀。但是,是的,你可能也可以设计一个更复杂的正则表达式来处理这个问题。
return "0x"+hex.Replace("-", " 0x");
var input = 16;

var bytes = new byte[2];
bytes[0] = (byte)(input >> 8);  // 0x00
bytes[1] = (byte)input;         // 0x10

var result = (bytes[0] << 8)
           | bytes[1];

// result == 16
Regex.Replace(number.ToString("X4"), "..", "0x$0 ").TrimEnd();