PHP 16进制负数转10进制,如何实现
迷茫
迷茫 2017-04-10 16:11:59
[PHP讨论组]

例如
$a=-101;

通过PHP内置函数可将$a转为16进制
echo dechex(-101 & 0xff);
-----------
输出结果:9b

求大神讲解,php如何将9b,这样的负16进制数,转回10进制的-101

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(2)
迷茫

-101 用 decbin 显示有32位。 & 0xff 只取了最低8位,高位都被截去了, 不能还原吧。

就 -101 而言,可以这么做

$signed = unpack("l", pack("l", hexdec("ffffff9b")));
var_dump(reset($signed));
巴扎黑

hexdec — 十六进制转换为十进制

说明

number hexdec ( string $hex_string )

返回与 hex_string 参数所表示的十六进制数等值的的十进制数。 hexdec() 将一个十六进制字符串转换为十进制数。
hexdec() 会忽略它遇到的任意非十六进制的字符。

参数

hex_string
要转换的十六进制的字符串

返回值
hex_string 十进制的表示

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号