| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > порядок байт и кросплатформенность |
| Автор: nmn 3.1.2010, 01:09 |
| здравствуйте интересует вопрос по поводу кросплатформенности и порядком байт, на разных платформах может быть разный порядок, и поэтому можно получить различные результаты читая данные из потока, есть ли что то в .net для решения этой проблемы кроме BitConverter.IsLittleEndian? Добавлено через 1 минуту и 35 секунд нашел IPAddress.NetworkToHostOrder |
| Автор: GavriKos 3.1.2010, 17:09 |
| А причем тут кросплатформенность? Кросплатформенность - запуск программы на другой платформе )) Если платформа поддерживает дотнет - все будет работать и порядок байт в прогу прийдет нормальный (виртуальная ашина дотнета должна обеспечить) |
| Автор: nmn 3.1.2010, 20:52 | ||
хмм а она откуда знает в каком формате число записано изначально? |
| Автор: GavriKos 6.1.2010, 12:16 |
| Виртуальная машина для каждой платформы своя ))) Или я не так понял вопрос. |
| Автор: nmn 6.1.2010, 15:01 | ||
на разных процессорах разный порядок записи многобайтовых чисел
такое нормально сработает если будет записываться и читаться на процессоре с одним порядком записи байт, или не так? откуда будет BinaryReader знать в каком формате записаны числа, у него запись стандартизована или просто переписывает то что в памяти? |
| Автор: Zakonnic 6.1.2010, 20:09 |
Согласно спецификациям: BinaryWriter stores this data type in little endian format. BinaryReader reads this data type in little-endian format. |
| Автор: GavriKos 6.1.2010, 21:24 |
| Насколько я понимаю, шарп дает такой уровень абстракции, что все равно, какой процессор и какой порядок - либо будет жестко фиксированно, о чем написали выше, либо автоматически определится. Чем выше уровень языка, тем меньше надо думать о процессорах. Это ж не асм )) |