php按位操作符

1.按位与(&):将数字转换成二进制。后进行与操作。将其位数对齐。若相同位都为1。则为1。反之为0;例子:

$a = 5;  0101;                               $a = 35;  10 0011;

$b = 9 ;   1001;                               $b = 23;  01 0111;

$a & $b = 0001;十进制为1           $a & $b = 00 0011; 十进制为3

2.按位或(|):将数字转换成二进制。后进行或操作。将其位数对齐。若相同位都不为1.则为0。反之为1;例子:

$a = 5;  0101;                                $a = 35;  10 0011;

$b = 9 ;   1001;                                 $b = 23; 01 0111;

$a | $b = 1101;十进制为13           $a | $b = 110111; 十进制为55

3.按位非(~):首先明确一点。计算机只认识补码。正数补码原码一致。负数的补码等于反码加一。~为取反(1变0,0变一);

以负5为例:

正数5(32位):  00000000 00000000 00000000 00000101

反码 :                   11111111 11111111 11111111 11111010

-5补码:                 11111111 11111111 11111111 11111011

 

正数5(32位): 00000000 00000000 00000000 00000101

反码:                 11111111 11111111 11111111 11111010

5的补码:              00000000 00000000 00000000 00000101

例子:$a = 5; $c = ~$a;

 5的补码进行~(得到负数的补码)     111111111111111111111111111111010

 负数补码还原到反码 (-1):            111111111111111111111111111111001

  获得负数原码:                                 000000000000000000000000000000110

  输出: 6 错。 正数~ 为负数; 所以是-6;

下面以-5为例子: -5补码  11111111 11111111 11111111 11111011

                               ~       00000000 00000000 00000000 00000100

                                反码  11111111 11111111 11111111 11111011

                                原码  00000000 00000000 00000000 00000100

 输出 : 4

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值