Flash 什么是>&燃气轮机;你在ActionScript3.0中做什么?
这里有一个使用它的例子Flash 什么是>&燃气轮机;你在ActionScript3.0中做什么?,flash,actionscript-3,Flash,Actionscript 3,这里有一个使用它的例子 boundsCentre = new Vector3D(stageWidth >> 1,stageHeight >> 1, 200.0); 谢谢。这是一个按位右移。看 按位右移本质上是每个移动位置的整数除以2。x>>2除以4,x>>3除以8,等等。相反,这是一个按位右移。看 按位右移本质上是每个移动位置的整数除以2。x>>2除以4,x>>3除以8,等等。相反地,>是正确的位移位运算符a>>b将a的位值b位向右移动 如果a=8和b=2,a>>b将产
boundsCentre = new Vector3D(stageWidth >> 1,stageHeight >> 1, 200.0);
谢谢。这是一个按位右移。看
按位右移本质上是每个移动位置的整数除以2。x>>2除以4,x>>3除以8,等等。相反,这是一个按位右移。看
按位右移本质上是每个移动位置的整数除以2。x>>2除以4,x>>3除以8,等等。相反地,
>
是正确的位移位运算符a>>b
将a
的位值b
位向右移动
如果a=8
和b=2
,a>>b
将产生2
,因为a
由1000
表示,移位的2位是10
,以二进制表示2
更重要的是,由于ActionScript是ECMAScript的一个变体,因此Number
类型的值将从64位表示转换为32位表示,然后进行移位。此外,(AFAIK,似乎在引用中找不到它)位移位溢出在ECMAScript中是未定义的
stageWidth>>1
基本上将stageWidth除以2,这意味着它是指向舞台中心的向量。在其他语言中,x>>1
是一种更快的2除方法,但在ECMAScript中,没有明显的性能变化,也没有出现歧义的可能性。因此,最好只将所需效果编码为:
stageWidth / 2
这样更容易理解。
>
是正确的位移位运算符a>>b
将a
的位值b
位向右移动
如果a=8
和b=2
,a>>b
将产生2
,因为a
由1000
表示,移位的2位是10
,以二进制表示2
更重要的是,由于ActionScript是ECMAScript的一个变体,因此Number
类型的值将从64位表示转换为32位表示,然后进行移位。此外,(AFAIK,似乎在引用中找不到它)位移位溢出在ECMAScript中是未定义的
stageWidth>>1
基本上将stageWidth除以2,这意味着它是指向舞台中心的向量。在其他语言中,x>>1
是一种更快的2除方法,但在ECMAScript中,没有明显的性能变化,也没有出现歧义的可能性。因此,最好只将所需效果编码为:
stageWidth / 2
这样更容易理解。啊,对了,这是有道理的。所以我猜它比使用/2更有效吗?@提姆-我不能用ActionScript中的权威来说话,但是在较低级别的语言中,如C或C++,如果你用文字来划分或乘法,即X/2而不是X/Y,Y=2,那么大多数编译器都会产生更高效的代码。@提姆,在某些语言中,因此,常见的误解是,它会出现在ActionScript中,但事实并非如此,因此它并没有真正那么有用。在C语言中,转换比除法更有效是一个神话(或者至少已经过时)。许多现代编译器会根据编译器标志和目标体系结构将*2和/2进行轮班优化。啊,没错,这很有意义。所以我猜它比使用/2更有效吗?@提姆-我不能用ActionScript中的权威来说话,但是在较低级别的语言中,如C或C++,如果你用文字来划分或乘法,即X/2而不是X/Y,Y=2,那么大多数编译器都会产生更高效的代码。@提姆,在某些语言中,因此,常见的误解是,它会出现在ActionScript中,但事实并非如此,因此它并没有真正那么有用。在C语言中,转换比除法更有效是一个神话(或者至少已经过时)。许多现代编译器会根据编译器标志和目标体系结构,将*2和/2进行轮班优化。