【问题标题】:Evaluating expression :- Javascript vs Python [duplicate]评估表达式:- Javascript vs Python [重复]
【发布时间】:2019-03-04 10:02:09
【问题描述】:

以下表达式在 Python 和 Javascript 中导致 Javascript 的结果不同:-

Python:-

a, b, c, e, f, h = 271733878, 4023233417, 5858469028, -389564586, 2562383102, 1634886000

a = a + (c & b | ~c & f) + h + e  # 4965557782

Javascript:-

a = 271733878;
b = 4023233417;
c = 5858469028;
e = -389564586
f = 2562383102;
h = 1634886000;

a = a + (c & b | ~c & f) + h + e; // 670590486

console.log(a)

同一表达式的计算在两种语言中有何不同?

【问题讨论】:

  • 因为它们的写法不同?
  • 甚至评估数学表达式?这听起来很奇怪!!应该更多。
  • 按位计算始终取决于值的位表示,因此非常特定于所使用的语言/平台。真的没有任何一个“正确”的答案。
  • 找到了解决方案。将 python 数字转换为 32 位的作品。

标签: javascript python


【解决方案1】:

~c 在 Python 和 Javascript 中的计算方式不同。

~c 是 c 值的否定。这是通过反转值的位来完成的。因此,不同语言的值不同,因为它们可能使用不同数量的位来存储 int 值,这将导致不同的 ~value。

Javascript:

~c = -1563501733

Python:

~c = -5858469029

【讨论】:

  • 任何解决方案,让我让它表现得类似?
  • 将python数字转换为32位的作品。
  • 是的,这就是我要建议的!很高兴你找到了答案
猜你喜欢
  • 1970-01-01
  • 2017-11-26
  • 1970-01-01
  • 2020-07-08
  • 1970-01-01
  • 2010-10-22
  • 2015-06-26
  • 1970-01-01
  • 2016-05-04
相关资源
最近更新 更多