【二进制】 原码 反码 补码 位移运算总结

本文总结了PHP中二进制原码、反码、补码的概念及其相互关系,并通过实例解析了位移运算的过程。文章通过具体的PHP代码演示了正负数在位运算中的表现,包括取反、按位与及左移、右移运算,加深了对二进制运算理解。
摘要由CSDN通过智能技术生成

今天遇到php中二进制的一些位移运算问题,感觉思路有点乱,就索性写下来了。

php中二进制原码,反码,补码知识总结:

①  二进制的最高位是符号位,0表示正数,1表示负数。

②  正数的原码,反码,补码都是本身

③  负数的反码是符号位不变,其他位置由0变1,由1变0

④  负数的补码=它的反码+1

⑤  0的反码,补码均为0

⑥  在计算机运算中,都是已补码的形式来运算的。

 

 

举例子说明:

(1)$a=~2

因为计算机会先把2转化为其补码形式在进行计算,所以先找到2的补码,根据②可知,2的补码为2。即2的补码以二进制的形式表示出来为:

 

故$a=~2后的结果为-3;这是理论推断,我们用php来验证下:

<?php

 $a=(~2);

 echo $a;

?>

输出结果为:-3

 

(2)$a=~(-2);

《由于$a的补码的符号位是0,所以$a是一个正数,根据②可知,$a为1》

  

php验证代码:

<?php

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值