代码之家  ›  专栏  ›  技术社区  ›  galets

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

  •  4
  • galets  · 技术社区  · 15 年前

    我想知道这里是否有人知道将整数转换为字节[4]的有效方法?我想在memorystream中写一个int,这个东西需要我给它字节。

    5 回复  |  直到 15 年前
        1
  •  14
  •   Greg Beech    15 年前

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

        2
  •  7
  •   Daniel LeCheminant    15 年前

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

    BinaryWriter bw = new BinaryWriter(someStream);
    bw.Write(intValue);
    bw.Write((Int32)1);
    // ...
    
        3
  •  6
  •   Jon Skeet    15 年前
    • BinaryWriter 将是写入流的最简单解决方案
    • BitConverter.GetBytes 如果你真的想要一个数组
    • 我自己的版本 MiscUtil ( EndianBitConverter EndianBinaryWriter )为您提供更多的对endianness的控制,还允许您直接转换为现有数组。
        4
  •  3
  •   Quintin Robinson    15 年前

    你也可以做你自己的转移!虽然我会使用内置的方法,但我想我会把它扔出去玩。

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

    当然,你必须担心endian。