在.NET中将int转换为byte [4]

时间:2009-02-19 16:49:06

标签: c# .net

我想知道这里是否有人知道将整数转换为字节的有效方法[4]?我正在尝试将一个int写入MemoryStream,这件事要我给它字节

5 个答案:

答案 0 :(得分:14)

如果要将基元类型转换为其字节表示,可以使用BitConverter.GetBytes。请记住确保字符序列符合您的方案。

答案 1 :(得分:7)

使用BinaryWriter(使用内存流构建);它有一个带有Int32的写方法。

BinaryWriter bw = new BinaryWriter(someStream);
bw.Write(intValue);
bw.Write((Int32)1);
// ...

答案 2 :(得分:6)

  • BinaryWriter将是写入流的最简单的解决方案
  • 如果你真的想要一个数组,
  • BitConverter.GetBytes是最合适的
  • MiscUtilEndianBitConverterEndianBinaryWriter)中我自己的版本可让您更好地控制字节序,还可以直接转换为现有数组。

答案 3 :(得分:3)

你也可以做自己的转变!虽然我会使用内置的方法,但我会把它扔到那里以获得乐趣。

byte[] getBytesFromInt(int i){
    return new byte[]{
        (byte)i,
        (byte)(i >> 8),
        (byte)(i >> 16),
        (byte)(i >> 24)
    };
}

当然,你必须担心endian。

答案 4 :(得分:2)