在c#中将对象转换为字节数组

时间:2010-11-15 14:42:43

标签: c# bytearray

我想在c#中将对象值转换为字节数组。

EX:

 step 1. Input : 2200
 step 2. After converting Byte : 0898
 step 3. take first byte(08)

 Output: 08

感谢

4 个答案:

答案 0 :(得分:11)

您可以查看GetBytes方法:

int i = 2200;
byte[] bytes = BitConverter.GetBytes(i);
Console.WriteLine(bytes[0].ToString("x"));
Console.WriteLine(bytes[1].ToString("x"));

另外,请确保在第一个字节的定义中考虑endianness

答案 1 :(得分:4)

byte[] bytes = BitConverter.GetBytes(2200);
Console.WriteLine(bytes[0]);

答案 2 :(得分:4)

使用BitConverter.GetBytes会使用系统的本机字节顺序将整数转换为byte[]数组。

short s = 2200;
byte[] b = BitConverter.GetBytes(s);

Console.WriteLine(b[0].ToString("X"));    // 98 (on my current system)
Console.WriteLine(b[1].ToString("X"));    // 08 (on my current system)

如果您需要明确控制转换的字节顺序,那么您需要手动执行:

short s = 2200;
byte[] b = new byte[] { (byte)(s >> 8), (byte)s };

Console.WriteLine(b[0].ToString("X"));    // 08 (always)
Console.WriteLine(b[1].ToString("X"));    // 98 (always)

答案 3 :(得分:1)

int number = 2200;
byte[] br = BitConverter.GetBytes(number);