php - 如何在 php 中将 signed 转换为 unsigned int for 32-bit

标签 php

我曾尝试在 php 中将 signed int 转换为 unsigned int 以实现 32 位。但我无法获得无符号整数的绝对值。

例子:

 $value = 65547;
  if (PHP_INT_SIZE == 8)
   {
    if ($value>0x7FFFFFFF)
    {
      $value-=0x100000000;
    }
   }

还有其他可能将有符号整数值转换为无符号整数值吗?

最佳答案

http://php.net/manual/en/function.gmp-abs.php

对于 php7,您将需要 php7.0-gmp 包

对于 php5,您将需要 php5-gmp 包

var_dump((int) gmp_abs("0x7FFFFFFF"));

...返回

int(2147483647)

关于php - 如何在 php 中将 signed 转换为 unsigned int for 32-bit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52016725/

相关文章:

javascript - Laravel/Croppie 2.6.2 : How to get output image in JPEG instead of default PNG?

php - 在表单中嵌套模型关系 - Laravel

php - 从 Controller 给出空响应并停止页面加载 - Symfony2

php - 返回错误/空数据的关系 (Laravel 5.2)

javascript - Wordpress - 翻译 javascript 或 jquery 中的字符串

php - 如何在php中解析github readme.md原始文件内容

php - 无法获取 URL 中的用户名

php - 地理定位 MySQL 查询

php - 如何清除Laravel中的缓存?

php - 错误: Undefined index: image for ($_FILES ['image' ] ['name' ])