按位数学工具的工作原理

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

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

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

  • 对于按位与,如果两个输入的对应位同时为 1,则输出为 1。如果有一个为 0 或两个同时为 0,则该位的输出为 0。
  • 对于按位或,如果两个输入的对应位有一个为 1 或同时为 1,则输出为 1。如果两个输入的对应位同时为 0,则该位的输出为 0。
  • 对于按位异或,如果两个输入的对应位一个为 1,另一个为 0,则输出为 1。如果两个输入的对应位同时为 1 或同时为 0,则该位的输出为 0。

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

按位非

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

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

按位非示例
按位非示例

按位左移和按位右移

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

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

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

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

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

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

注注:

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

相关主题

5/10/2014