Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > порядок байт и кросплатформенность


Автор: nmn 3.1.2010, 01:09
здравствуйте

интересует вопрос по поводу кросплатформенности и порядком байт, на разных платформах может быть разный порядок, и поэтому можно получить различные результаты читая данные из потока, есть ли что то в .net для решения этой проблемы кроме BitConverter.IsLittleEndian?

Добавлено через 1 минуту и 35 секунд
нашел smile
IPAddress.NetworkToHostOrder

Автор: GavriKos 3.1.2010, 17:09
А причем тут кросплатформенность? Кросплатформенность - запуск программы на другой платформе )) Если платформа поддерживает дотнет - все будет работать и порядок байт в прогу прийдет нормальный (виртуальная ашина дотнета должна обеспечить)

Автор: nmn 3.1.2010, 20:52
Цитата(GavriKos @ 3.1.2010,  17:09)
А причем тут кросплатформенность? Кросплатформенность - запуск программы на другой платформе )) Если платформа поддерживает дотнет - все будет работать и порядок байт в прогу прийдет нормальный (виртуальная ашина дотнета должна обеспечить)

хмм а она откуда знает в каком формате число записано изначально?

Автор: GavriKos 6.1.2010, 12:16
Виртуальная машина для каждой платформы своя ))) Или я не так понял вопрос.

Автор: nmn 6.1.2010, 15:01
на разных процессорах разный порядок записи многобайтовых чисел
Код

BinaryReader br;
br.Write(123);
uint c=br.ReadUInt32();

такое нормально сработает если будет записываться и читаться на процессоре с одним порядком записи байт, или не так?
откуда будет BinaryReader знать в каком формате записаны числа, у него запись стандартизована или просто переписывает то что в памяти?

Автор: Zakonnic 6.1.2010, 20:09
Цитата(nmn @  3.1.2010,  20:52 Найти цитируемый пост)
хмм а она откуда знает в каком формате число записано изначально?

Согласно спецификациям:

BinaryWriter stores this data type in little endian format.
BinaryReader reads this data type in little-endian format.

Автор: GavriKos 6.1.2010, 21:24
Насколько я понимаю, шарп дает такой уровень абстракции, что все равно, какой процессор и какой порядок - либо будет жестко фиксированно, о чем написали выше, либо автоматически определится. Чем выше уровень языка, тем меньше надо думать о процессорах. Это ж не асм ))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)