Flash 查找数字位置的位掩码

Flash 查找数字位置的位掩码,flash,actionscript-2,bit-manipulation,bit,Flash,Actionscript 2,Bit Manipulation,Bit,我正在尝试为一个游戏(在Flash中)制定一个逻辑。在一部分中,给定以下行: \uu*\ u*\ u* 我需要找出*之间的所有空格是否为空(行中可能出现除*以外的非空值)。此操作非常频繁。 我想知道是否可以使用行的位表示来实现这一点,而不是循环检查中间位置 对于表示为xx1x1(x=1或0)的行\uu*\ u*\ u*,我可以使用0001110对其进行排序,以便如果答案是0000000,则中间位置为空 当然,这里的问题是,如何使用位操作(在Flash AS2中)找到第二个映射(上面的000111

我正在尝试为一个游戏(在Flash中)制定一个逻辑。在一部分中,给定以下行:

\uu*\ u*\ u*

我需要找出
*
之间的所有空格是否为空(行中可能出现除*以外的非空值)。此操作非常频繁。
我想知道是否可以使用行的位表示来实现这一点,而不是循环检查中间位置

对于表示为
xx1x1
x
=1或0)的行
\uu*\ u*\ u*
,我可以使用
0001110
对其进行排序,以便如果答案是
0000000
,则中间位置为空

当然,这里的问题是,如何使用位操作(在Flash AS2中)找到第二个映射(上面的
0001110
)?(地图(1,4)->0110,(1,3)->0100等)

还是通过中间位置循环只是更好的选择?

您可以通过移位一些位来实现这一点

var bits:int = 0x7F; // 7 bits
var mask:int = ((bits >> (bits - end)) << start) & bits;

另一种描述方式:
位-(end+1)
是左边的零的数量,
start
是一序列右边的零的数量

不确定,但您知道您感兴趣的位周围的位的位置吗?还是最左边和最右边的1,比如
001xxx1
?是的,我知道位置。这就是我所说的地图(1,4),地图(1,3)等等。
// row:          xx1xxx1
// desired mask: 0001110
//               the sequence of ones in the mask starts at 1, ends at 3

bits = 0x7F;        // 1111111
mask = bits >> 4;   // 0000111
mask = mask << 1;   // 0001110