我在一些AS 3.0代码中看到了这个:
(duration >> 0)
其中duration是一个数字
。我知道什么是按位右移,但是将0位进行移动有什么意义呢?在代码中会多次出现这种情况,我希望能够理解它的作用。
我在一些AS 3.0代码中看到了这个:
(duration >> 0)
其中duration是一个数字
。我知道什么是按位右移,但是将0位进行移动有什么意义呢?在代码中会多次出现这种情况,我希望能够理解它的作用。
数字转整数
在AS3中使用int(x)比其他方法快10%。但是在AS2中,按位版本的效果更好。
x = int(1.232)
//等同于: x = 1.232 >> 0;
最佳解释:http://lab.polygonal.de/2007/05/10/bitwise-gems-fast-integer-math/das
这可能是一种不需要调用Math.floor()函数而摆脱小数的技巧,因为即使以Number作为输入也会得到一个整数。
我不确定这与将x强制转换为int(更常见)相比,性能如何。
flag0 = 1 >> 0,
flag1 = 1 >> 1,
flag2 = 1 >> 2
等等。如果你在代码中遇到这个,我会认为它只是一些剩余的内容,当时有更多要移动的(测试,变更的需求)。当然,除非这个运算符在AS3中不是移位运算符。例如,在C++中,它还用作输入流运算符(因为你正在将一些输入移动到一些变量中。叹气)。
<<
)? - Tim>>
的 ;) - OregonGhost