zoukankan      html  css  js  c++  java
  • php的负整数和正整数相加(负数以补码的形式存在内存,正数以原码的形式存在内存)

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

    十进制为例

    原码:

    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,之后再进行反码就得到原码,该原码就是结果的正值,最后加上负号,得到最终结果

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

    踩过这个坑,还有下一个坑等着你,这一路就是给自己填坑,坑填多了,也就习惯了,直到这一路平坦了,也就无怨无悔了。
  • 相关阅读:
    2017-2018 ACM-ICPC, Asia Tsukuba Regional Contest E:Black or White
    树状数组--二叉索引树
    P1654 OSU!-洛谷luogu
    P1365 WJMZBMR打osu! / Easy-洛谷luogu
    P4550 收集邮票-洛谷luogu
    P2257 YY的GCD--洛谷luogu

    P3200 [HNOI2009]有趣的数列--洛谷luogu
    catalan数
    lucas定理
  • 原文地址:https://www.cnblogs.com/xiaofeilin/p/13311256.html
Copyright © 2011-2022 走看看