Побитовое ИЛИ
предполагает, что C = bitor(A,B,assumedtype)A и B являются assumedtype.
Создайте таблицу истинности для логической операции OR.
A = uint8([0 1; 0 1]); B = uint8([0 0; 1 1]); TTable = bitor(A, B)
TTable = 2x2 uint8 matrix
0 1
1 1
bitor возвращает 1, если любой битовый вход равен 1.
MATLAB ® кодирует отрицательные целые числа с помощью дополнения two. Например, чтобы найти представление дополнения -5 для двух, следует взять битовый шаблон положительной версии числа (00000101), поменять местами каждый бит (11111010), а затем добавить 1 к результату (11111011).
Следовательно, побитовое ИЛИ -5 (11111011) и 6 (00000110) равно -1 (11111111).
a = -5;
bitget(a,8:-1:1,'int8')ans = 1×8
1 1 1 1 1 0 1 1
b = 6;
bitget(b,8:-1:1,'int8')ans = 1×8
0 0 0 0 0 1 1 0
c = bitor(a,b,'int8')c = -1
bitget(c,8:-1:1,'int8')ans = 1×8
1 1 1 1 1 1 1 1
Использовать bitor и bitshift чтобы упаковать четыре 8-битных байта в 32-битное целое число, которое они составляют.
Создайте четыре байта данных. Укажите данные с шестнадцатеричными литералами, используя -u32 суффикс, указывающий, что данные должны храниться как uint32. Каждый байт содержит 8 битов данных.
byte4 = 0x87u32; byte3 = 0x65u32; byte2 = 0x43u32; byte1 = 0x21u32;
Начните с добавления первого байта в качестве первых 8 битов 32-разрядного целого числа без знака.
packedNum = byte1;
Затем упакуйте остальные три байта в packedNum, использование bitshift для перемещения байтов в соответствующие местоположения, и bitor для копирования битов.
packedNum = bitor(packedNum,bitshift(byte2,8)); packedNum = bitor(packedNum,bitshift(byte3,8*2)); packedNum = bitor(packedNum,bitshift(byte4,8*3));
Просмотрите упакованное 32-разрядное целое число.
format hex
packedNumpackedNum = uint32
87654321
A,B - Входные значенияВходные значения, указанные как скаляры, векторы, матрицы или многомерные массивы. Исходные данные A и B должны иметь одинаковый размер или совместимые размеры (например, A является Mоколо-N матрица и B является скаляром или 1около-N вектор строки). Дополнительные сведения см. в разделе Совместимые размеры массивов для основных операций. A и B также должен быть того же типа данных, если один не является скалярным двойником.
Если A и B являются двойными массивами, и assumedtype не указан, то MATLAB ® обрабатываетA и B как беззнаковые 64-разрядные целые числа.
Если assumedtype указывается, то все элементы в A и B должны иметь целочисленные значения в диапазоне assumedtype.
Типы данных: double | logical | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64
assumedtype - Предполагаемый тип данных integ1 и integ2'uint64' | 'uint32' | 'uint16' | 'uint8' | 'int64' | 'int32' | 'int16' | 'int8'Предполагаемый тип данных A и B, указано как 'uint64', 'uint32', 'uint16', 'uint8', 'int64', 'int32', 'int16', или 'int8'.
Если A и B являются двойными массивами, то assumedtype может указать любой допустимый тип целого числа, но по умолчанию 'uint64'.
Если A и B - массивы целочисленных типов, то assumedtype необходимо указать тот же самый тип целого числа.
Типы данных: char | string
netobj1, netobj2 - Входные значенияВходные значения, указанные как объекты перечисления .NET. Для использования объектов перечисления .NET в качестве входных аргументов необходимо запустить версию Windows ®.
bitor является методом экземпляра для объектов перечисления MATLAB, созданных из перечисления .NET.
C - Побитовый результат ИЛИРезультат ИЛИ, возвращаемый в виде массива. C является тем же типом данных, что и A и B.
Если либо A или B является скалярным двойником, а другой - целым типом, то C - целочисленный тип.
objout - Побитовый результат ИЛИРезультат ИЛИ, возвращенный в виде объектов перечисления .NET.
Примечания и ограничения по использованию:
Оба входа могут быть целочисленными массивами без знака, или один вход может быть целочисленным массивом без знака, а другой вход может быть скалярным двойным.
64-разрядные целые числа не поддерживаются.
assumedtype аргумент не поддерживается.
Дополнительные сведения см. в разделе Запуск функций MATLAB на графическом процессоре (панель инструментов параллельных вычислений).
Примечания и ограничения по использованию:
assumedtype аргумент не поддерживается.
Дополнительные сведения см. в разделе Запуск функций MATLAB с распределенными массивами (панель инструментов параллельных вычислений).
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.