我想將 Go 代碼更改為 Javascript 代碼,但是 Go 和 Javascript 之間的結(jié)果存在一個(gè)不同的錯(cuò)誤。我想將 javascript 的結(jié)果更改為與 Go 的結(jié)果相同 (0xFFFFFFFF ^ 97)我嘗試調(diào)試它,我發(fā)現(xiàn) 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 中是不同的結(jié)果
1 回答

喵喔喔
TA貢獻(xiàn)1735條經(jīng)驗(yàn) 獲得超5個(gè)贊
在 JavaScript 中,按位運(yùn)算(^
按位異或)將數(shù)字轉(zhuǎn)換為帶符號(hào)的 32 位整數(shù),然后再轉(zhuǎn)換回雙精度型。因此,執(zhí)行 XOR 運(yùn)算后,數(shù)字將轉(zhuǎn)換回其默認(rèn)類(lèi)型 - IEEE-754 雙精度二進(jìn)制數(shù) - 然后給出結(jié)果。
number?->?32-bit?signed?integer?->?bitwise?operation?->?IEEE-754?double-precision?binary?number
- 1 回答
- 0 關(guān)注
- 210 瀏覽
添加回答
舉報(bào)
0/150
提交
取消