我想將 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 回答

喵喔喔
TA貢獻1735條經驗 獲得超5個贊
在 JavaScript 中,按位運算(^
按位異或)將數字轉換為帶符號的 32 位整數,然后再轉換回雙精度型。因此,執行 XOR 運算后,數字將轉換回其默認類型 - IEEE-754 雙精度二進制數 - 然后給出結果。
number?->?32-bit?signed?integer?->?bitwise?operation?->?IEEE-754?double-precision?binary?number
- 1 回答
- 0 關注
- 201 瀏覽
添加回答
舉報
0/150
提交
取消