Изменение упорядоченного расположения байтов
Замените упорядоченное расположение байта на скаляр 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
X
- Числовое значениеЧисловое значение, заданное как скаляр, вектор, матрица или многомерный массив. The swapbytes
операция элементарна, когда X
является нескалярным.
Типы данных: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Компьютерные системы хранят данные в кусках байтов. Существует два способа хранения числового значения в памяти компьютера: маленькая эндовая и большая эндовая. В малоэндовом стиле байты записываются слева направо во все большей значимости. В стиле big-endian байты записываются слева направо с уменьшающейся значимостью. The swapbytes
функция меняет упорядоченное расположение байтов в памяти, преобразуя маленький эндиан в большой эндиан (и наоборот).
Следующий рисунок иллюстрирует преобразование 32-битного (4-байтового) шестнадцатеричного числа, 4D3C2B1A. В шестнадцатеричном обозначении один байт представлен двумя цифрами. Каждый ящик на маленьком эндовом рисунке показывает один байт данных (4D, 3C, 2B и 1A). The swapbytes
функция меняет порядок этих полей или байтов.
Эта функция полностью поддерживает длинные массивы. Для получения дополнительной информации см. Раздел «Длинные массивы»
Указания и ограничения по применению:
Наследование класса входа swapbytes
в блоке MATLAB Function поддерживается только, когда класс входного сигнала double
. Для не двойных входов типы данных входного порта должны быть заданы, а не унаследованы.
Указания и ограничения по применению:
Наследование класса входа swapbytes
в блоке MATLAB Function поддерживается только, когда класс входного сигнала double
. Для не двойных входов типы данных входного порта должны быть заданы, а не унаследованы.
Эта функция полностью поддерживает массивы GPU. Для получения дополнительной информации смотрите Запуск функций MATLAB на графическом процессоре (Parallel Computing Toolbox).
Эта функция полностью поддерживает распределенные массивы. Для получения дополнительной информации смотрите Запуск функций MATLAB с распределенными массивами (Parallel Computing Toolbox).
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.