我曾尝试在 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/