码迷,mamicode.com
首页 > Web开发 > 详细

php取反运算值 {echo ~2;}你知道结果是什么吗?

时间:2017-09-09 15:16:13      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:是什么   一个   负数   反码   bsp   div   符号   第一个   为什么   

echo ~2; 

  请问结果值是多少呢?

答案是  -3

 

为什么?

首先计算机用补码来存储的,正数的原码、反码、补码都是一样的,

例如:

3的原码、反码、补码都是

                 00000000 00000000 00000000 00000011

-3的原码   10000000 00000000 00000000 00000011  (第一个是符号位,1表示负数)

-3的反码   11111111  111111111  11111111  11111100  (符号位第一个不变,其他位置取反)

 

-3的补码   11111111  111111111  11111111  11111101

 

再来看看之前的问题:

// 2的补码   00000000 000000000 00000000 00000010
// ~运算后   11111111 111111111 11111111 11111101  (其实就-3的补码)
echo ~2; // 输出 -3

// 4的补码   00000000 000000000 00000000 00000100
// ~运算后   11111111 111111111 11111111 11111011  (其实就-5的补码)
//          11111111 111111111 11111111 1111010   (反码)
//          10000000 00000000  00000000 0000101   (原码)
echo ~4;//输出 -5

  

 

php取反运算值 {echo ~2;}你知道结果是什么吗?

标签:是什么   一个   负数   反码   bsp   div   符号   第一个   为什么   

原文地址:http://www.cnblogs.com/trNote/p/7498159.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!