search

Home  >  Q&A  >  body text

PHP中十六进制计算?

比如十六进制: $s = '9C216AFB868C';
现在 $s 加 1,php 中怎么实现了?

PHP中文网PHP中文网2819 days ago750

reply all(2)I'll reply

  • 巴扎黑

    巴扎黑2017-04-10 14:53:52

    9C216AFB868C 已经超出了正常 32 位的范围,可以试试 PHP 专门进行大数运算的扩展库 GMP 库(GNU Multiple Precision)。

    $sum = gmp_add("9C216AFB868C", "1");
    echo gmp_strval($sum);
    

    reply
    0
  • PHPz

    PHPz2017-04-10 14:53:52

    php 发现 对$a的操作是 + ,就会把$a隐式转换成数字(转换规则见手册),9C216AFB868C 由于前面没有标明(0x..)是16进制数字,会看作字符串按照规则转换成数字9,加一后便是10;

    如果是

    $s = '0x9C216AFB868C';
    $a+1;
    

    则把 $a当作16进制来处理的。希望能帮到你

    reply
    0
  • Cancelreply