You need to enable JavaScript to run this app. 如何在PHP中将64位无符号整数转换为Hex十六进制值
优惠活动
大模型
产品
解决方案
定价
更多

如何在PHP中将64位无符号整数转换为Hex十六进制值

PHP 64位无符号事件ID转十六进制方案

核心转换方法

针对API返回的64位无符号整数类型事件标识,可直接使用以下PHP代码完成转换,不会出现精度丢失问题:

/**
 * 将64位无符号整数事件ID转换为大写十六进制字符串
 * @param int $eventId 接口返回的事件标识整数
 * @return string 转换后的十六进制结果
 */
function eventIdToHex(int $eventId): string
{
    // 转换为大写无前缀格式,如需固定16位长度可放开下一行注释、注释当前return
    return strtoupper(dechex($eventId));
    // return str_pad(strtoupper(dechex($eventId)), 16, '0', STR_PAD_LEFT);
}

示例转换结果

对应你提供的三个测试整数,输出结果如下:

  • 输入80000000000 → 输出 12A05F2000
  • 输入80001000000 → 输出 12A0689A00
  • 输入80010000000 → 输出 12A0BC0200

大整数兼容方案

如果你的运行环境为32位PHP,或接口返回的事件ID以字符串格式传递避免溢出,可开启GMP扩展后使用以下兼容代码:

function eventIdStrToHex(string $eventIdStr): string
{
    if (!extension_loaded('gmp')) {
        throw new Exception('请先开启GMP扩展支持大整数运算');
    }
    return strtoupper(gmp_strval(gmp_init($eventIdStr, 10), 16));
}

补充说明

如果需要按事件类型做匹配判断,可直接将转换后的十六进制值与对应事件的掩码做按位与运算,即可快速识别触发的事件类型。

内容的提问来源于stack exchange,提问作者Mielie007

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 11:54:03