2009-02-19 112 views

回答

14

如果要将基元类型转换为其字节表示形式,则可以使用BitConverter.GetBytes。只要记住要确保您的场景的字节顺序是正确的。

+0

谢谢!我知道有一个简单的方法来做到这一点:) – galets 2009-02-19 16:53:23

7

使用BinaryWriter(用你的内存流构造);它有一个采用Int32的写入方法。

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

好主意!谢谢 – galets 2009-02-19 16:54:01

6
  • BinaryWriter将写入一个流简单的解决方案
  • BitConverter.GetBytes是最合适的,如果你真的想要一个数组
  • 我自己的版本MiscUtilEndianBitConverterEndianBinaryWriter)给你更多地控制字节序,并且还允许你直接转换成现有的数组。
3

你也可以做你自己的转变!虽然我会使用内置的方法计算出我想扔出去的乐趣。

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

当然,那么你必须担心endian。

+0

也恰好是跨平台,上面也适用于Java :) – 2009-02-19 17:12:36