我想知道有没有什么高效的方法可以将整数转换为字节数组[4]?我正在尝试将int写入MemoryStream,而这个东西需要我提供字节
如果您想将原始类型转换为其字节表示,可以使用BitConverter.GetBytes
。只需记得确保字节顺序在您的方案中是正确的即可。
使用BinaryWriter(使用您的内存流构造); 它有一个写入方法,可以接受Int32。
BinaryWriter bw = new BinaryWriter(someStream);
bw.Write(intValue);
bw.Write((Int32)1);
// ...
BinaryWriter
是向流进行写操作最简单的解决方案。BitConverter.GetBytes
如果你确实需要一个数组,则是最适合的方法。EndianBitConverter
和EndianBinaryWriter
)可以更好地控制字节序,并且还允许您直接将数据转换到现有的数组中。byte[] getBytesFromInt(int i){
return new byte[]{
(byte)i,
(byte)(i >> 8),
(byte)(i >> 16),
(byte)(i >> 24)
};
}