Порядок байтов: различия между версиями

[отпатрулированная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
оформление
Метки: с мобильного устройства через мобильное приложение через приложение для Android
Строка 92:
 
== Проблемы совместимости и конвертация ==
Запись многобайтового числа из памяти компьютера в файл или передача по сети требует соблюдения соглашений о том, какой из байтов передается первым. Прямая запись в том порядке, в котором байты расположены в ячейках памяти, приводит к проблемам при переносе приложения с платформы на платформу.
 
Для преобразования между сетевым порядком байтов ({{lang-en|network byte order}}), который всегда big-endian, и порядком байтов, использующимся на машине ({{lang-en|host byte order}}), стандарт [[POSIX]] предусматривает функции <code>htonl()</code>, <code>htons()</code>, <code>ntohl()</code>, <code>ntohs()</code>:
Строка 100:
* <code>uint16_t ntohs(uint16_t netshort);</code> — конвертирует 16-битную беззнаковую величину из сетевого порядка байтов в локальный.
 
В случае совпадения текущего порядка байтов и сетевого, функции могут быть «пустыми» (то есть, не менять порядка байтов). Стандарт также допускает, чтобы эти функции были реализованы макросами.
 
Существует много языков и библиотек со средствами конвертации в оба основных порядка байт и обратно.