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进行轮班优化。