Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

bitxor

按位 XOR

说明

C = bitxor(A,B) 返回 AB 的按位 XOR。

示例

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

示例

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

示例

全部折叠

为逻辑 XOR 运算创建真值表。

A = uint8([0 1; 0 1]);
B = uint8([0 0; 1 1]);
TTable = bitxor(A, B)
TTable = 2x2 uint8 matrix

   0   1
   1   0

当按位运算输入相等时,bitxor 返回 0。

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

因此,-5 (11111011) 和 6 (00000110) 的按位 XOR 为 -3 (11111101)。

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 = bitxor(a,b,'int8')
c = -3
bitget(c,8:-1:1,'int8')
ans = 1×8

     1     1     1     1     1     1     0     1

输入参数

全部折叠

输入值,指定为标量、向量、矩阵或多维数组。输入 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 枚举对象用作输入参量。

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

输出参量

全部折叠

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

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

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

扩展功能

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

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

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

版本历史记录

在 R2006a 之前推出