swapbytes

Изменение упорядоченного расположения байтов

Синтаксис

Описание

пример

Y = swapbytes(X) меняет упорядоченное расположение байтов каждого элемента в массиве X с маленького эндового на большой эндовый (или наоборот). Все элементы входного массива должны быть полными, некомплексными и числовыми.

Примеры

свернуть все

Замените упорядоченное расположение байта на скаляр 32-битное значение. Используйте шестнадцатеричное представление, чтобы показать преобразование из маленького эндового в большой эндовый.

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
X
X = 1x4 uint16 row vector

   0000   0001   0080   ffff

Y
Y = 1x4 uint16 row vector

   0000   0100   8000   ffff

Создайте трехмерный массив A из 16-битных целых чисел. Смените упорядоченное расположение байтов каждого элемента. Используйте шестнадцатеричное представление, чтобы показать эндовое преобразование.

format hex
X = uint16(magic(3)*150);
X(:,:,2) = X*40;
X
X = 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

Входные параметры

свернуть все

Числовое значение, заданное как скаляр, вектор, матрица или многомерный массив. The swapbytes операция элементарна, когда X является нескалярным.

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Подробнее о

свернуть все

Преобразуйте Little Endian в Big Endian

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

Следующий рисунок иллюстрирует преобразование 32-битного (4-байтового) шестнадцатеричного числа, 4D3C2B1A. В шестнадцатеричном обозначении один байт представлен двумя цифрами. Каждый ящик на маленьком эндовом рисунке показывает один байт данных (4D, 3C, 2B и 1A). The swapbytes функция меняет порядок этих полей или байтов.

Расширенные возможности

..

См. также

Представлено до R2006a