bitor
按位 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
将字节合并为 32 位无符号整数
使用 bitor
和 bitshift
将四个 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
输入参数
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® 版本才能将 .NET 枚举对象用作输入参量。
bitor
是从 .NET 枚举创建的 MATLAB 枚举对象的实例方法。
输出参量
C
— 按位 OR 结果
数组
按位 OR 结果,以数组形式返回。C
的数据类型与 A
和 B
相同。
如果
A
或B
为双精度标量值,并且另一个为整数类型,则C
为整数类型。
objout
— 按位 OR 结果
.NET 枚举对象
按位 OR 结果,作为 .NET 枚举对象返回。
扩展功能
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
GPU 代码生成
使用 GPU Coder™ 为 NVIDIA® GPU 生成 CUDA® 代码。
HDL 代码生成
使用 HDL Coder™ 为 FPGA 和 ASIC 设计生成 VHDL、Verilog 和 SystemVerilog 代码。
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
GPU 数组
通过使用 Parallel Computing Toolbox™ 在图形处理单元 (GPU) 上运行来加快代码执行。
用法说明和限制:
两个输入可以都是无符号整数数组,或者一个输入是无符号整数数组,另一个输入是双精度标量。
不支持 64 位整数。
不支持
assumedtype
参量。
有关详细信息,请参阅在 GPU 上运行 MATLAB 函数 (Parallel Computing Toolbox)。
分布式数组
使用 Parallel Computing Toolbox™ 在集群的组合内存中对大型数组进行分区。
版本历史记录
在 R2006a 之前推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)