我是一个有用的助手,可以帮您进行文本翻译。
我正在尝试将 PHP 算法移植到 Perl,但在处理一个我不熟悉的位运算符时遇到了困难...
因此,PHP 代码如下:
...
$var = '348492634';
print ~$var;
...
结果:-348492635
使用Perl实现同样的操作:
...
$var = '348492634';
print ~$var;
...
结果:18446744073361058981
我阅读了很多关于整数大小取决于cpu架构的文章,但是我从未找到一个可行的解决方案。也许我只是在perl中使用错误的函数......
对于逻辑来说,获取与php脚本相同的结果是必要的。
提前致谢。
~
将输入强制转换为整数,而不是您代码注释所暗示的十六进制字符串。 - mob~
也适用于字符串:"\xCE\xCD\xCC" eq ~"123"
。EggL 的输出不是由他展示的代码产生的,还有其他地方进行了数字化处理。 - amon~
运算符是很有趣的。@amon - mob~
只适用于int32。 (哦,亲爱的,在字符串化中查看每个字符的重新实现(http://www.php.net/manual/en/language.operators.bitwise.php#112699)很痛苦...尽管我今天早些时候写了类似的代码)。 - amon