上面代码中,以通道0
为例,1
的二进制形式是0001
,5
的二进制形式是01001
,所以进行运算以后,得到0001
。
xor
方法接受两个 SIMD 值作为参数,返回两者对应的通道进行二进制“异或”运算(^
)后得到的新的 SIMD 值。
上面代码中,1
的否运算之所以得到-2
,是因为在计算机内部,负数采用”2 的补码“这种形式进行表示。也就是说,整数n
的负数形式-n
,是对每一个二进制位取反以后,再加上 1。因此,直接取反就相当于负数形式再减去 1,比如1
的负数形式是-1
,再减去 1,就得到了-2
。