我正在考虑将我的Arithmetic Expression Compiler从JavaScript重写为PHP,这样它也可以在不支持JavaScript的浏览器中使用.一个奇怪的问题是,NU Assembler不支持将浮点数转换为IEEE754十六进制,而是依赖编译器来完成这一任务.以下是我在JavaScript中如何做到这一点:

        getIEEE754 = function (decimalNumber) {
          var floatArray = new Float32Array([decimalNumber]);
          var buffer = floatArray.buffer;
          var intArray = new Int32Array(buffer);
          return (
            (highlight ? '<span style="color:#007700">' : "") +
            "0x" +
            intArray[0].toString(16) +
            (highlight ? "<\/span>" : "")
          );
        };

那么,在PHP中如何做到这一点呢?

推荐答案

使用pack将浮点转换为二进制字符串.使用unpack将二进制字符串转换为integer.使用dechex将整元转换为十六进制表示.

function getIEEE754($decimalNumber) {
    return '0x' . dechex(unpack('L', pack('f', $decimalNumber))[1]);
}

Php相关问答推荐

在PHP中结合每周日程安排和特殊日子查找下一个可用日期

无法添加ProxyClass__setInitialized()上的忽略

显示WooCommerce当前产品类别或标签的短代码

PHP日期操作,将多个日期输出为格式化字符串

MySQLi是否在事务错误时删除保存点(并且仅删除保存点)?

WooCommerce数量减号和加号图标未显示

WooCommerce在购买后多次重定向

返回WooCommerce中的所有已启用变体

WooCommerce中基于用户角色的不同产品差价

Codeigniter 4中的未定义变量$HOME

为什么PHP PDO忽略NOT NULL约束?

扩展 WooCommerce 类触发未捕获错误:未找到WC_Coupon类

使用 PHP,我可以将 foreach 语句放入瞬态中吗?

如何用十进制和字母数字减go 和添加 id

.htaccess 重写规则问题

如何限制 woocommerce 中相关产品的标题长度

PHP 中使用 JSON 的自定义会话处理程序会因错误而 destruct 会话

使用 Composer 找不到 Google APIClient 类

PHP简单地将物品装在盒子里会导致未使用的空间,但还有剩余容量

正则表达式 (php) 匹配单个 [ 或单个 ] 但忽略 [[ ]] 之间的任何内容?