按位操作的使用(ActionScript描述)

原创 2007年09月18日 01:37:00
      我还不是一个职业程序员,也没有写过太多的代码,目前还只是一个爱好者吧。目前为止,我从来没有使用过按位运算和操作,不论是在C++或者AS的实际应用中……不对,应该说没有刻意主动使用过,特别是用于实际操作中。今天看到一些启发,记录一下:
   
       首先,为什么要使用按位运算?——能节省在二进制数据和布尔数据之间转换的步骤,所以只要可能,就应该用按位操作来代替布尔操作。这样做得越多,对程序的执行效果提高也越多!

       1、按位操作处理颜色
       RGB值通常由6位十六进制表示,红绿蓝各2位,而2位十六进制正好可以用8位二进制表示(一个字节)。
       因此,将三种颜色值组成一个RGB值采用按位操作就可以这样做:
          Action Script:
                 var nRed:Number     = 12;
                 var nGreen:Number = 10;
                 var nBlue:Number    =  233;
           
                 var nRGB:Number = nRed<<16 | nGreen<<8 | nBlue;
        将一个RGB值分开成三种颜色值的做法:
                 var nRed:Number     =   nRGB >> 16 & 0xFF;
                 var nGreen:Number =   nRGB >> 8 & 0xFF;
                 var nBlue:Number    =   nRGB & 0xFF;


         2、使用标志变量
         标志变量是一种设置跟踪变量的集合,是一种使用一个单独变量来跟踪多个设置值的方法。RGB值就是一个典型的应用,它通过一个RGB值跟踪3个设置值。
         更常用的标志变量像布尔变量那样使用每一位,用一个单独变量替代多个布尔值。

         例:
        
位置编号 3 2 1 0
功能 是否可见 是否播放 是否可拖拽 是否右边向上
1 0 0 1

          设置变量表示功能:
               var RIGHT_SIDE_UP:Number  =  1;    //    2^0
               var DRAGGABLE:Number          =  2;    //    2^1
               var PLAYING:Number                  =  4;    //    2^2
               var VISIBLE:Number                    =  8;    //    2^3

               var nFlag:Number  =  4;                           // 0 100
               按位“或”用于打开:
               nFlag |= VISIBLE;                                      // 1 100
               按位“与”和按位“取反”使某位关闭(清位)
               nFlag &= ~PLAYING;                                // 1 000
               按位“异或”用于切换
               nFlag ^= DRAGGABLE;                            // 1 010

相关文章推荐

VMware提示:已将该虚拟机配置为使用 64 位客户机操作系统。但是,无法执行 64 位操作。解决方案

VMware提示:已将该虚拟机配置为使用 64 位客户机操作系统。但是,无法执行 64 位操作。解决方案...
  • jdbc
  • jdbc
  • 2016年05月03日 06:35
  • 19388

VMware12提示 已将该虚拟机配置为使用 64 位客户机操作系统。但是,无法执行 64 位操作。

VMware12提示 已将该虚拟机配置为使用 64 位客户机操作系统。但是,无法执行 64 位操作。 此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态 ...

VMware12提示 已将该虚拟机配置为使用 64 位客户机操作系统。但是,无法执行 64 位操作。

VMware12提示 已将该虚拟机配置为使用 64 位客户机操作系统。但是,无法执行 64 位操作。 此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态...

位操作-在寄存器中的使用

位与:(任何数,其实就是1或者0)与1位与无变化,与0位与变成0 位或:(任何数,其实就是1或者0)与1位或变成1,与0位或无变化 位异或:(任何数,其实就是1或者0)与1位异或会取反,与0位异或...

Java中的位操作使用举例

本文的目的不是为了阐述位操作的原理,而是发现在工作中有些同学清楚位操作,但是不知道什么时候使用位操作。以下列举两个例子简单说明我们可以使用到位操作的场景,但不一定符合实际业务场景,仅供参考。 1...

已将该虚拟机配置为使用 64 位客户机操作系统。但是,无法执行 64 位操作。

错误提示: 一般只有下面几种方法 百度经验解决方法 2.第二种方法检测问题所在: 下载LeoMoon CPU-V 检查一下CPU VT-x状态是否开启...

位操作点亮一个led

  • 2014年08月11日 23:15
  • 616B
  • 下载

Redis源码分析(十九)——二进制位操作bitops

对给定的键的键值(字符串或)

PB位操作函数

  • 2012年04月01日 21:28
  • 114KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:按位操作的使用(ActionScript描述)
举报原因:
原因补充:

(最多只允许输入30个字)