首页 > Web开发 > 详细

php的负整数和正整数相加(负数以补码的形式存在内存,正数以原码的形式存在内存)

时间:2020-07-16 00:40:03      阅读:64      评论:0      收藏:0      [点我收藏+]

首先先理解原码,反码,补码

十进制为例

原码:

5的原码:00000101

反码:11111010

补码:补码在末尾加1即   11111011  (正数的补码就是其负数,即5的补码就是-5)

正数在内存中以原码存在内存的

2的原码:00000010

反码:11111101

补码:补码在末尾加1即   11111110

假如:

$a =5;

$b =-2;

$a+$b  //3

5的原码:00000101  与 2的补码(即-2)11111110  相加为 100000011  最前面溢出的1去掉,剩下的二进制数00000011转为十进制就是3

以上例子是正负相加为正的情况下,得到的二进制码就是该结果的原码,直接转为十进制就行

如果相加为负数,将得到结果的二进制数-1,之后再进行反码就得到原码,该原码就是结果的正值,最后加上负号,得到最终结果

 

最后理解还是有点乱,等我再了解然后更新。。。先睡了

 

php的负整数和正整数相加(负数以补码的形式存在内存,正数以原码的形式存在内存)

原文:https://www.cnblogs.com/xiaofeilin/p/13311256.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!