我想将 Go 代码更改为 Javascript 代码,但是 Go 和 Javascript 之间的结果存在一个不同的错误。我想将 javascript 的结果更改为与 Go 的结果相同 (0xFFFFFFFF ^ 97)我尝试调试它,我发现 0xFFFFFFFF ^ 97 在 Go 中是 4294967198 但在 javascript 中是 -98。在围棋中:number1 := 0xFFFFFFFFnumber2 := 97fmt.Print(number1 ^ number2) // 4294967198 在 JavaScript 中:var number1 = 0xFFFFFFFFvar number2 = 97console.log(number1 ^ number2) // -980xFFFFFFFF ^ 97 在 Go 和 Javascript 中是不同的结果
1 回答
![?](http://img1.sycdn.imooc.com/533e4c1500010baf02200220-100-100.jpg)
喵喔喔
TA贡献1735条经验 获得超5个赞
在 JavaScript 中,按位运算(^
按位异或)将数字转换为带符号的 32 位整数,然后再转换回双精度型。因此,执行 XOR 运算后,数字将转换回其默认类型 - IEEE-754 双精度二进制数 - 然后给出结果。
number -> 32-bit signed integer -> bitwise operation -> IEEE-754 double-precision binary number
- 1 回答
- 0 关注
- 160 浏览
添加回答
举报
0/150
提交
取消