C # Как представить Int как четырехбайтовое целое - PullRequest
0 голосов
/ 25 октября 2011

Я пытаюсь отправить Length массива байтов на мой сервер, чтобы он знал, сколько данных нужно прочитать.

Я получаю длину массива Byte[] message, используя int messageLength = message.Length

Как мне представить это целое число messageLength четырехбайтовое целое число?

Ответы [ 5 ]

6 голосов
/ 25 октября 2011

Использовать BitConvertor BitConverter.GetBytes(message.Length);

5 голосов
/ 25 октября 2011

Используйте BitConverter.GetBytes (int32) , класс

1 голос
/ 25 октября 2011

Вы можете использовать

int length = message.Length;
BitConvert.GetBytes(length);

http://msdn.microsoft.com/en-us/library/system.bitconverter.aspx

0 голосов
/ 25 октября 2011

Байт в C # равен 8 битам .. 8 битов * 4 байта = 32 бита .. поэтому вы хотите использовать System.Int32.

0 голосов
/ 25 октября 2011
message[0] = length & 0xFF;
message[1] = (length >> 8) & 0xFF;
message[2] = (length >> 16) & 0xFF;
message[3] = (length >> 24) & 0xFF;

Чтобы восстановить это ...

int length = message[0] | (message[1] << 8) | (message[2] << 16) | (message[3] << 24);
...