我在 PHP 中处理图片,当我生成带透明通道的 argb 值时,我期望返回的是 0xFFFFFFFF ,但是结果很奇怪,有人知道原因吗?
$argb=0xFF << 24 + 0xFFFFFF;
var_dump($argb); // int(2139095040) == 0x7F800000
PHP 手册上说:
如果给定的一个数超出了 integer 的范围,将会被解释为 float 。同样如果执行的运算结果超出了 integer 范围,也会返回 float 。
1
solupro 2016-01-22 15:15:21 +08:00 1
$argb=(0xFF << 24) + 0xFFFFFF;
|
2
cloudhunter OP @solupro 脑抽忘记优先级了
|