我正在寻找一种将 8 字符字符串转换为 32 位有符号整数的简洁方法。
请参阅MSDN上的 Convert.ToInt32 方法参考。
这是 VB 中当前的 .NET 代码:
Convert.ToInt32("c0f672d4", 16)
// returns -1057590572
如何使用 PHP 5.3+ 为 32 位和 64 位获得相同的返回值?
我想它可能需要组合打包/解包函数和按位运算符,但还没有找到正确的组合。
更新:2013-07-10 以下仅适用于 32 位系统:
$str = 'c0f672d4';
$int = intval( substr( $str, 0, 4 ), 16 ); // read high 16 bit word
$int <<= 16; // shift hi word correct position
$int |= intval( substr( $str, 4, 4 ), 16 ); // read low 16 bit word
echo $int;
// returns -1057590572
上面的问题是它不适用于 64 位系统。相反,我3237347344
使用上面的 PHP 代码获取值。
使用可移植到 32 位和 64 位的 PHP 获得一致整数的任何想法?