按位数学工具的工作原理
按位工具将逐个像元地计算输入值的二进制表示。将对二进制表示中的每一位执行布尔运算。
下文中将介绍各种按位工具的运算逻辑。箭头用于指示运算过程:将输入值转换为 base2 二进制表示,对输入值进行分析,然后返回为十进制 (base10) 值。
按位与、按位或和按位异或
- 对于按位与,如果两个输入的对应位同时为 1,则输出为 1。如果有一个为 0 或两个同时为 0,则该位的输出为 0。
- 对于按位或,如果两个输入的对应位有一个为 1 或同时为 1,则输出为 1。如果两个输入的对应位同时为 0,则该位的输出为 0。
- 对于按位异或,如果两个输入的对应位一个为 1,另一个为 0,则输出为 1。如果两个输入的对应位同时为 1 或同时为 0,则该位的输出为 0。
Decimal Binary value value ------- -------- Input 1 5 > 00000101 Input 2 3 > 00000011 V Bitwise And 1 < 00000011 Bitwise Or 7 < 00000111 Bitwise XOr 6 < 00000110
按位非
按位非用于确定输入值的二进制表示的按位补码。
这表示,如果输入位为 1,则输出为 0,如果输入位为 0,则输出为 1。
Decimal Binary value value ------- -------- Input 1 5 > 00000101 V Bitwise Not -6 < 11111010
按位左移和按位右移
下方示意图中的箭头指明了此类运算的过程:首先将输入值转换为相应的二进制表示,然后对表示输入值的各位对执行按位逻辑运算,最后将值转换回十进制表示。
- 对于按位左移,各位的值将按第二个输入中所指定的位数向左移动。最左端一位的值将丢失。
左移一位等效于将值乘以 2。
- 对于按位右移,各位的值将按第二个输入中所指定的位数向右移动。最右端一位的值将丢失。
右移一位等效于将值除以 2 并舍去小数。
Decimal Binary value value ------- -------- Input 1 5 > 00000101 Input 2 1 > 00000001 V Bitwise Left Shift 10 < 00001010 Bitwise Right Shift 2 < 00000010
注:
如果任一输入像元值为 NoData,则输出值也将为 NoData。
相关主题
7/10/2012