Порядок байтов подкачки
Замена порядка байтов на скалярное 32-разрядное значение. Шестнадцатеричное представление используется для отображения преобразования из little endian в big endian.
X = uint32(hex2dec('4D3C2B1A'));
Y = dec2hex(swapbytes(X))Y = '1A2B3C4D'
Начиная с R2019b, можно также записать шестнадцатеричное значение как литерал, используя 0x или 0X (дополнительные сведения см. в разделе Шестнадцатеричные и двоичные значения). Укажите номер X как шестнадцатеричный литерал. Поменять местами порядок байтов.
X = 0x4D3C2B1A; Y = dec2hex(swapbytes(X))
Y = '1A2B3C4D'
Поменять местами порядок байтов для каждого элемента вектора 1 на 4.
format short
X = uint16([0 1 128 65535])X = 1x4 uint16 row vector
0 1 128 65535
Y = swapbytes(X)
Y = 1x4 uint16 row vector
0 256 32768 65535
Проверьте выходные данные в шестнадцатеричной форме, чтобы показать преобразование эндиана.
format hex
XX = 1x4 uint16 row vector
0000 0001 0080 ffff
Y
Y = 1x4 uint16 row vector
0000 0100 8000 ffff
Создание трехмерного массива A 16-разрядных целых чисел. Поменять местами порядок байтов каждого элемента. Используйте шестнадцатеричное представление для отображения преобразования endian.
format hex
X = uint16(magic(3)*150);
X(:,:,2) = X*40;
XX = 3x3x2 uint16 array
X(:,:,1) =
04b0 0096 0384
01c2 02ee 041a
0258 0546 012c
X(:,:,2) =
bb80 1770 8ca0
4650 7530 a410
5dc0 d2f0 2ee0
Y = swapbytes(X)
Y = 3x3x2 uint16 array
Y(:,:,1) =
b004 9600 8403
c201 ee02 1a04
5802 4605 2c01
Y(:,:,2) =
80bb 7017 a08c
5046 3075 10a4
c05d f0d2 e02e
X - Числовое значениеЧисловое значение, указанное как скаляр, вектор, матрица или многомерный массив. swapbytes операция является элементарной, когда X является нескалярным.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
Компьютерные системы хранят данные в байтах. Существует два способа сохранения числового значения в памяти компьютера: little endian и big endian. В стиле little-endian байты записываются слева направо с возрастающей значимостью. В стиле big-endian байты записываются слева направо с понижением значимости. swapbytes функция изменяет порядок байтов в памяти, преобразуя little endian в big endian (и наоборот).
На следующем рисунке показано преобразование для 32-разрядного (4-байтового) шестнадцатеричного числа, 4D3C2B1A. В шестнадцатеричной нотации один байт представлен двумя цифрами. Каждое поле на малозначительном рисунке показывает один байт данных (4D, 3C, 2B и 1A). swapbytes функция изменяет порядок этих полей или байтов.

Эта функция полностью поддерживает массивы tall. Дополнительные сведения см. в разделе Массивы Tall.
Примечания и ограничения по использованию:
Наследование класса входных данных swapbytes в блоке MATLAB Function поддерживается только тогда, когда класс входа double. Для вводов, отличных от двойных, типы данных входных портов должны быть указаны, а не унаследованы.
Примечания и ограничения по использованию:
Наследование класса входных данных swapbytes в блоке MATLAB Function поддерживается только тогда, когда класс входа double. Для вводов, отличных от двойных, типы данных входных портов должны быть указаны, а не унаследованы.
Эта функция полностью поддерживает массивы графических процессоров. Дополнительные сведения см. в разделе Запуск функций MATLAB на графическом процессоре (панель инструментов параллельных вычислений).
Эта функция полностью поддерживает распределенные массивы. Дополнительные сведения см. в разделе Запуск функций MATLAB с распределенными массивами (панель инструментов параллельных вычислений).
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.