我想知道这里是否有人知道将整数转换为字节的有效方法[4]?我正在尝试将一个int写入MemoryStream,这件事要我给它字节
答案 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
是最合适的
EndianBitConverter
和EndianBinaryWriter
)中我自己的版本可让您更好地控制字节序,还可以直接转换为现有数组。答案 3 :(得分:3)
你也可以做自己的转变!虽然我会使用内置的方法,但我会把它扔到那里以获得乐趣。
byte[] getBytesFromInt(int i){
return new byte[]{
(byte)i,
(byte)(i >> 8),
(byte)(i >> 16),
(byte)(i >> 24)
};
}
当然,你必须担心endian。
答案 4 :(得分:2)