2013-11-22 4 views
0

Будет ли компилятор C++ VS2010 преобразовывать big-endian в little-endian данные для использования на компьютерах x86?C++ компилятор конвертирует big-endian в little endian

+1

компилятор не заботится о * данных *, то есть * ваш * ответственность ... – Nim

+0

Компилятор позаботится о правильной малой или большой размерности памяти структур данных, включая компиляцию числовых констант в исходном коде к кодировке, специфичной для машины, но она не имеет возможности узнать, являются ли данные, поступающие извне (файлы, сетевые пакеты и т. д.), большими или маленькими, поэтому он не может выполнять магическое автоматическое преобразование за спиной программы. –

ответ

0

Компилятор не выполнит никаких преобразований автоматической трансформации. Компилятор при настройке x86 знает, что архитектура немного ориентирована. И поэтому он испускает соответствующие данные, которые также мало ориентированы.

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

+1

Спасибо, что поставил меня прямо. Забыл, для чего собрались конкурсанты. – ed134

0

Endianess данных не преобразуется после компиляции программы и зависит от компилятора.

Компиляторы могут быть широкоформатными, малоподобными или обеими (для платформ, которые могут работать как в режимах little-endian, так и в режиме big-endian). Однако платформа x86 является малоинтенсивной (см. here)

Смежные вопросы