为了账号安全,请及时绑定邮箱和手机立即绑定

PHP中十进制 和十六进制的转换问题

PHP中十进制 和十六进制的转换问题

米脂 2019-04-13 08:45:17
$s='9C216AFB868C';$sb=hexdec($s);var_dump($sb);//1.716673427227E+14echo'';var_dump(dechex($sb));//6afb868c十六进制$s转换成十进制,再转回十六进制就出问题。查dechex()转换大小是有限制的。------------补充---------------------------------------$s='9C216AFB868C';$s加1php中怎么实现了?(十六进制计算)
查看完整描述

2 回答

?
慕的地6264312

TA贡献1817条经验 获得超6个赞

首先如果你不是32位的计算机的话,这个位数远没有达到PHP所能处理的最大值,PHP里的最大值可以用常量PHP_INT_MAX查到,在64位计算机下它的值是
echoPHP_INT_MAX;//9223372036854775807
echodechex(PHP_INT_MAX);//7fffffffffffffff
况且你都能成功从16进制转过来,是不可能因为大小问题转不回去的。问题就出在你转出来的这个10进制值上,它是
1.716673427227E+14
这是一个用科学计数法表示的字符串,而dechex函数是无法识别这个字符串的,php中只会自动将纯数字组成的字符串转换成相应的整形或者浮点。
                            
查看完整回答
反对 回复 2019-04-13
  • 2 回答
  • 0 关注
  • 303 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号