Go 和 Javascript 关于 0xFFFFFFFF 的区别是什么^ 97

我想将 Go 代码更改为 Javascript 代码,但是 Go 和 Javascript 之间的结果存在一个不同的错误。我想将 javascript 的结果更改为与 Go 的结果相同 (0xFFFFFFFF ^ 97)


我尝试调试它,我发现 0xFFFFFFFF ^ 97 在 Go 中是 4294967198 但在 javascript 中是 -98。


在围棋中:


number1 := 0xFFFFFFFF

number2 := 97

fmt.Print(number1 ^ number2) // 4294967198 

在 JavaScript 中:


var number1 = 0xFFFFFFFF

var number2 = 97

console.log(number1 ^ number2) // -98

0xFFFFFFFF ^ 97 在 Go 和 Javascript 中是不同的结果


慕妹3146593
浏览 161回答 1
1回答

喵喔喔

在 JavaScript 中,按位运算(^按位异或)将数字转换为带符号的 32 位整数,然后再转换回双精度型。因此,执行 XOR 运算后,数字将转换回其默认类型 - IEEE-754 双精度二进制数 - 然后给出结果。number -> 32-bit signed integer -> bitwise operation -> IEEE-754 double-precision binary number
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go