【问题标题】:Bitwise and unsigned int operations in PHPPHP中的按位和无符号整数运算
【发布时间】:2011-01-18 00:33:58
【问题描述】:

我正在尝试将我的 C++ 代码转换为 PHP,但我卡住了,我的源代码使用无符号整数(32 位)和许多按位运算,如旋转、异或、移位,我正在尽我所能让它工作, 我正在将整数切割成 32 位

$i = $i & 0xFFFFFFFF;

但这次我还是遇到了很多麻烦(我猜这与乘法/除法有关)。

是否有任何 PHP 库可以处理 32 位无符号整数的操作,也欢迎任何其他想法 :) 谢谢 :)

【问题讨论】:

  • 您遇到了什么具体问题?
  • 您可以通过这种方式从有符号负整数生成无符号整数(字符串形式):$unsigned = sprintf('%u', -5);;您需要的大部分内容都应该在 GMP 库中。

标签: php c++ int unsigned


【解决方案1】:

请看看Java程序员如何处理unsigned int的

http://www.javamex.com/java_equivalents/unsigned.shtml

我想这是唯一的方法......

【讨论】:

    【解决方案2】:

    PHP 中的所有整数都是有符号的。

    但是这里有按位运算的答案: http://php.net/manual/en/language.operators.bitwise.php

    【讨论】:

    【解决方案3】:

    几年前我也遇到过类似的问题。事实证明,问题出在 32 位操作系统中。切换到 64 位操作系统为我解决了问题。

    【讨论】:

      猜你喜欢
      • 2011-05-27
      • 1970-01-01
      • 1970-01-01
      • 2013-05-23
      • 2020-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-31
      相关资源
      最近更新 更多