2009-02-19 120 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