2017-10-21 15 views
0

x32または1の32ビット(0xffff ffff)に問題があります。 例: 0xffffffff^0xfffは0xfffff000でなければなりませんが、jsではunsigned intを宣言できないので、-4096または-1000を16進数で取得します。私はそれで何かをゴマJavascript xor 32bit整数の問題

>0xffffffff^0xfff 
<-4096 

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

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

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

それは正しくフォーマット:

はここのJSコンソール出力です。 このようなケースを正しく処理する方法はありますか?

UPD:私はその問題が先頭ビットである実現し、まだそれに対処する方法

答えて

0

符号なし右シフトはこの場合

>((0xf0000000^0xf)>>>0).toString(16) 
<"f000000f" 
のために便利ですありません