【问题标题】:Calculate Decimal Xor for two decimal Numbers using PHP使用 PHP 计算两个十进制数的十进制异或
【发布时间】:2016-12-13 17:54:03
【问题描述】:

我想使用 PHP 对这两个十进制数进行异或运算。我已经尝试过按位运算符 XOR( ^ ) 但输出错误,因为我也希望它是十进制的。

第一个数字=121065035052

第二个数字=210022101 预期十进制异或输出= 121274989561

echo  210022101 ^ 121065035052 ;

这个回显语句的输出是:1015905273

请帮帮我。在此先感谢

【问题讨论】:

  • "我试过这个功能但是..." - 什么功能?
  • @Hallur ^ 函数
  • 我能看到 not 工作的唯一可能情况是,如果您运行的是 32 位 PHP。 var_dump(PHP_INT_MAX); 的输出是什么?
  • 您正在运行 32 位 PHP。如果不使用GMP,您将无法计算出比这更大的数字。
  • 可以确认,仅在运行 64 位 PHP 时有效。不适用于 32 位 PHP。

标签: php numbers logical-operators


【解决方案1】:

第一个数字 121065035052 是一个 37 位数字,因此您的代码仅适用于 64 位 PHP。 为了与 32 位 PHP 兼容,请使用 GMP。

$a = gmp_init('121065035052');
$b = gmp_init('210022101');
$c = gmp_xor($a,$b);

echo gmp_strval($c);

如预期的那样,输出为 121274989561。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-13
    • 1970-01-01
    • 2011-07-15
    • 1970-01-01
    相关资源
    最近更新 更多