2017-10-21 140 views
0

我有問題試圖xor 32位1(0xffff ffff)。 例如: 0xffffffff^0xfff應該是0xfffff000,但在js中,我不能聲明unsigned int,因此我得到-4096或-1000的十六進制。Javascript xor 32位整數問題

這裏是JS控制檯輸出:

>0xffffffff^0xfff 
<-4096 

>(0xffffffff^0xfff).toString(16) 
<"-1000" 

>0xffffffff.toString(2) 
<"11111111111111111111111111111111" 

>0xfff.toString(2) 
<"111111111111" 

直到我用它做什麼它正確的格式。 有沒有辦法正確處理這種情況?

UPD:我意識到,問題是在領先一點,但還是如何處理不與它

回答

0

無符號右移是這種情況下

>((0xf0000000^0xf)>>>0).toString(16) 
<"f000000f" 
有幫助