Main Content

bitor

按位 OR

说明

示例

C = bitor(A,B) 返回 AB 的按位 OR。

示例

C = bitor(A,B,assumedtype) 假定 AB 属于 assumedtype

objout = bitor(netobj1,netobj2) 返回 .NET 枚举对象 netobj1netobj2 的按位 OR。

示例

全部折叠

为逻辑 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

如果任何按位运算输入为 1,bitor 返回 1。

MATLAB® 使用 2 的补码表示法对负整数进行编码。例如,若要求出 -5 的 2 的补码表示,可以取其正数的位模式 (00000101),交换每个位 (11111010),然后将 1 加到结果 (11111011)。

因此,-5 (11111011) 和 6 (00000110) 的按位 OR 为 -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

使用 bitorbitshift 将四个 8 位字节打包为它们组成的 32 位整数。

创建四个字节的数据。用十六进制字面值指定数据,使用 -u32 后缀指定数据应存储为 uint32。每个字节包含 8 位数据。

byte4 = 0x87u32; 
byte3 = 0x65u32; 
byte2 = 0x43u32; 
byte1 = 0x21u32;

首先将第一个字节作为 32 位无符号整数的前 8 位相加。

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

输入参数

全部折叠

输入值,指定为标量、向量、矩阵或多维数组。输入 AB 必须具有相同的大小或具有兼容的大小(例如,A 是一个 M×N 矩阵,B 是标量或 1×N 行向量)。有关详细信息,请参阅基本运算的兼容数组大小AB 还必须为相同的数据类型,除非其中一个是双精度标量值。

  • 如果 AB 是双精度数组,并且未指定 assumedtype,则 MATLAB® 会将 AB 视为无符号 64 位整数。

  • 如果已指定 assumedtypeAB 中的所有元素必须是 assumedtype 类型范围内的整数值。

数据类型: double | logical | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

假定的 AB 的数据类型,指定为 'uint64''uint32''uint16''uint8''int64''int32''int16''int8'

  • 如果 AB 是双精度数组,assumedtype 可以指定任何有效的整数类型,但默认为 'uint64'

  • 如果 AB 是整数类型数组,则 assumedtype 必须指定相同的整数类型。

数据类型: char | string

输入值,指定为 .NET 枚举对象。必须运行某个 Windows® 版本才能将 .NET 枚举对象用作输入参数。

bitor 是从 .NET 枚举创建的 MATLAB 枚举对象的实例方法。

输出参数

全部折叠

按位 OR 结果,以数组形式返回。C 的数据类型与 AB 相同。

  • 如果 AB 为双精度标量值,并且另一个为整数类型,则 C 为整数类型。

按位 OR 结果,作为 .NET 枚举对象返回。

扩展功能

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

GPU 代码生成
使用 GPU Coder™ 为 NVIDIA® GPU 生成 CUDA® 代码。

HDL 代码生成
使用 HDL Coder™ 为 FPGA 和 ASIC 设计生成 VHDL、Verilog 和 SystemVerilog 代码。

版本历史记录

在 R2006a 之前推出