按位数学工具的工作原理

需要 Spatial Analyst 许可。

获得 Image Analyst 许可后可用。

按位工具将逐个像元地计算输入值的二进制表示。将对二进制表示中的每一位执行布尔运算。

下文中将介绍各种按位工具的运算逻辑。箭头用于指示运算过程:将输入值转换为 base2 二进制表示,对输入值进行分析,然后返回为十进制 (base10) 值。

按位工具逻辑

按位与、按位或和按位异或

  • 对于按位与,如果某个位的两个输入均为 1,则输出为 1。只要有一个输入位为 0,输出位就为 0。
  • 对于按位或,如果某个位的一个输入为 1 或两个输入同时为 1,则输出为 1。如果两个输入位均为 0,则输出位为 0。
  • 对于按位异或,如果某个位的两个输入一个为 1,另一个为 0,则输出为 1。如果两个输入位均为 1 或均为 0,则输出位为 0。

按位与、按位或和按位异或示例
按位与、按位或和按位异或示例

按位非

按位非用于确定输入值的二进制表示的按位补码。

这表示,如果每个输入位均为 1,则输出为 0。如果输入位为 0,则输出为 1。

按位非示例
“按位非”示例

按位左移和按位右移

下方示意图中的箭头指明了此类运算的过程:首先将输入值转换为相应的二进制表示,然后对表示输入值的各位对执行按位逻辑运算,最后将值转换回十进制表示。

  • 对于按位左移,各位的值将按第二个输入中所指定的位数向左移动。最左端一位的值将丢失。

    左移一位等效于将值乘以 2。

  • 对于按位右移,各位的值将按第二个输入中所指定的位数向右移动。最右端一位的值将丢失。

    右移一位等效于将值除以 2 并舍去小数。

按位左移和按位右移示例
按位左移和按位右移示例

NoData 处理

如果任一输入像元值为 NoData,则输出值也将为 NoData。

相关主题