我正在寻找一种简洁的方式将8个字符的字符串转换为32位有符号整数。.NET Framework中Convert.ToInt32的PHP等效代码
请参阅参考MSDN上的Convert.ToInt32方法。
这是当前的.NET代码在VB:
Convert.ToInt32("c0f672d4", 16)
// returns -1057590572
如何使用PHP 5.3+同时为32位和64位,我得到相同的回报价值?
我想它可能需要pack/unpack功能和bitwise operators的组合但尚未找到正确的组合。
更新时间:2013年7月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位工作系统。相反,我使用上面的PHP代码获得值3237347344
。
任何想法获得一个一致的整数与PHP可移植的32位和64位?
那上面的代码中,虽然不会产生我在32位和64位,并测试这个输出,你可以用hexdec –