2017-10-21 21 views
0

x32 또는 32 비트의 1 (0xffff ffff)에 문제가 있습니다. 예 : 0xffffffff^0xfff는 0xfffff000이어야하지만 js에서는 부호없는 int를 선언 할 수 없으므로 16 진수로 -4096 또는 -1000을 얻습니다. 나는 그것으로 뭔가를 할 때까지자바 스크립트 xor 32 비트 정수 문제

>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" 
도움이됩니다 그것으로 거래를하지 않는 방법에 여전히 문제가 조금 선두에 실현하지만,