最基础的位运算
在闪技区有一次关于涂鸦板的讨论。涂鸦的话,会有数据导出的问题。把onMouseMove记录的点的坐标,保存在数组里导出。
我们可以用位运算处理坐标,大大的减少要导出的数据。
导出使用的运算是左移<<和相加,恢复是 按位与 & 和右移>>
以最大是512*512的图像为例:511表示为8进制是0777
point = x<<9 + y
恢复
x = (point&0777000)>>9
y = point&0777
还有就是RGB是一个数值,也是用上面的方法提出每一个通道的
r= (RGB&0xff0000)>>16
g= (RGB&0x00ff00)>>8
b= RGB&0x0000ff
上面有颜色的数字叫掩码,非0的部分用2进制表是都是“全1”,0的部分是“全0”,这样按位与&的结果就是,全1的部分对应的数字被保留了,全0的部分被清0了。在移动到对应的位置,得到希望的结果。
这样,保存一个点需要0777777是18位的一个整数值。
2005-09-03 12:23:38 出处:
闪吧