Интернет магазин китайских планшетных компьютеров



Компьютеры - Порядок байтов - Проблемы совместимости

23 января 2011


Оглавление:
1. Порядок байтов
2. Проблемы совместимости
3. Вещественные числа
4. Интересные факты



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

Определение порядка байтов

Порядок байтов в конкретной машине можно определить с помощью программы на языке Си:

#include <stdio.h>
unsigned short x = 1; /* 0x0001 */
int main
{
  printf &x) == 0 ? "big-endian" : "little-endian");
  return 0;
}
Вывод данной программы осмыслен только на платформах, где размер типа unsigned short больше, чем размер типа unsigned char. Это заведомо верно на подавляющем большинстве компьютеров, так как они имеют 8-разрядный байт. Однако существуют и аппаратные платформы с 32-разрядным байтом.

Результаты запуска на big-endian машине

 $ uname -m
 sparc64
 $ gcc -o testendian testendian.c 
 $ ./testendian 
 big-endian

Результаты запуска на little-endian машине

 $ uname -m
 i386
 $ gcc -o testendian testendian.c 
 $ ./testendian 
 little-endian


Просмотров: 4844


<<< Порт (компьютер)