Вы используете BitConverter
, чтобы получить byte
представление целого числа, но затем вы должны перевернуть его, потому что на большинстве машин оно имеет порядок байтов.Поскольку я не знаю, упаковываете ли вы их в MemoryStream
или byte[]
(хотя вы должны это сделать), я просто покажу это точно.
int myInt = 1234;
byte[] num1 = BitConverter.GetBytes( myInt );
if ( BitConverter.IsLittleEndian ) {
Array.Reverse( num1 );
}
И затем вы можете передать этов ваш буфер, который для C # может быть byte[]
.Вот как вы можете сделать 2 целых числа:
int myInt1 = 1234;
int myInt2 = 5678;
byte[] temp1 = BitConverter.GetBytes( myInt1 );
byte[] temp2 = BitConverter.GetBytes( myInt2 );
if ( BitConverter.IsLittleEndian ) {
Array.Reverse( temp1 );
Array.Reverse( temp2 );
}
byte[] buffer = new byte[ temp1.Length + temp2.Length ];
Array.Copy( temp1, 0, buffer, 0, temp1.Length );
Array.Copy( temp2, 0, buffer, temp1.Length, temp2.Length );
return buffer;