百度百科中,取一个二进制末K位的操作是:
取末k位 | (1101101->1101,k=5) | x and (1 shl k-1)
其中and = & shl = <<
在ActionScript3中,取末k位的操作这样是不行的,需要重新写。
那么仔细考虑一下,取末N位的操作应该如何取呢?
先来看看,位操作中&(and)操作符的应用:
1&0=0
0&0=0
所以呢:
001&000=000
100&111=100
101&011=001
如果位数不同呢?
101&0=0
101&1=1
101&10=00
101&11=01
101011&111=011=11
于是我们取x最后n位的办法就出来了:
x&1111111(n个1)
在AS3中具体的实现代码为:
x&(~(~0<<n));
再简化一下:
x&(~(-1<<n));
在很多AS3程序的优化中,这个操作可是很有用的:-)
Word教程网 | Excel教程网 | Dreamweaver教程网 | Fireworks教程网 | PPT教程网 | FLASH教程网 | PS教程网 |
HTML教程网 | DIV CSS教程网 | FLASH AS教程网 | ACCESS教程网 | SQL SERVER教程网 | C语言教程网 | JAVASCRIPT教程网 |
ASP教程网 | ASP.NET教程网 | CorelDraw教程网 |