Битовый OR
принимает, что 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 ® кодирует отрицательные целые числа, используя дополнение двух. Например, чтобы найти представление дополнения двух аргументов -5, вы принимаете битовый шаблон положительной версии числа (00000101
), меняйте каждый бит (11111010
), а затем добавить 1 к результату (11111011
).
Поэтому битовый OR -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
packedNum
packedNum = uint32
87654321
A,B
- Входные значенияВходные значения, заданные как скаляры, векторы, матрицы или многомерные массивы. Входные параметры A
и B
должен быть либо одинаковым размером, либо иметь совместимые размеры (для примера, A
является M
-by- N
матрица и B
является скаляром или 1
-by- 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. Необходимо запустить версию Windows® использовать объекты перечисления .NET в качестве входных параметров.
bitor
является методом образца для объектов перечисления MATLAB, созданных из перечисления .NET.
C
- Битовый результат ORБитовый результат OR, возвращенный как массив. C
- тот совпадающий тип данных, что и A
и B
.
Если либо A
или B
является скалярным двойником, а другой - целым типом, то C
- целый тип.
objout
- Битовый результат ORБитовый результат OR, возвращенный как объекты перечисления .NET.
Указания и ограничения по применению:
Оба входа могут быть массивами беззнаковых целых чисел, или один вход может быть массив беззнаковых целых чисел, а другой вход может быть скаляром двойным.
64-битные целые числа не поддерживаются.
The assumedtype
аргумент не поддерживается.
Для получения дополнительной информации смотрите Запуск функций MATLAB на графическом процессоре (Parallel Computing Toolbox).
Указания и ограничения по применению:
The assumedtype
аргумент не поддерживается.
Для получения дополнительной информации смотрите Запуск функций MATLAB с распределенными массивами (Parallel Computing Toolbox).
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.