PHP位运算的典型应用案例

公益慈善北京中科在行动 http://m.39.net/pf/a_5197605.html

原码,反码,补码介绍

原码:

就是“数学意义”上的一个整数的二进制的原来(本来)的形式。

其中,又在计算机中有一个规定:一个二进制数字(比如32位),最左边的一位是符号位:

0表示是正数;

1表示是负数;

原码举例:

3就是:

5就是:

-3就是:10000011

-5就是:10000101

反码:

这样规定:

正数的反码就是其原码本身(即不变);

负数的反码是:符号位不变,其他所有位取反(~)所得到的结果:

3的反码就是:

5的反码就是:

-3的反码就是:

-5的反码就是:

补码:

这样规定:

正数的补码就是其原码本身(即不变);

负数的补码是:符号位不变,反码加1,(即原码基础上其他所有位取反后加1):

3的补码就是:

5的补码就是:

-3的补码就是:

-5的补码就是:

举一例:

4的原码:

-4的原码:10000100

-4的反码:

-4的补码:

位运算的一个典型应用:

目标:

“管理”一组具有开关状态的“数据”(事物)。

开关状态:就是只有2个状态,比如true/false,“是/否”,“开/关”,“来/去”

一组:就是指多个,若干个——自然应该是有一个明确的个数

假设:

有5个灯泡,需要管理。这5个灯泡,有个编号顺序,它们的管理需求是:

1,指定任意一盏灯泡的当前状态;

2,能够打开任意指定的一盏灯泡;

3,能够关闭任意指定的一盏灯泡;

案例1:

运行结果:

案例2:

运行结果:

案例3:




转载请注明:http://www.aierlanlan.com/tzrz/4605.html