Inteiro não assinado em Javascript

Eu estou trabalhando em uma página que processa informações de endereço IP, mas está engasgado com o fato de que os números inteiros são assinados. Eu estou usando operadores bitwise para acelerar, mas o bit 64 (sinalizador assinado / não assinado) está bagunçando.

Existe alguma maneira de forçar um número a ser assinado em JavaScript? Parece funcionar bem, até que a sub-rede seja maior que 30 ou menor que 2.

Tente isto:

<html>
<body>

<script type='text/javascript'>
document.write( (1 << 30) +"<br/>");
document.write( (1 << 31) +"<br/>");
document.write( (1 << 32) +"<br/>");
</script>

</body>
</html>

Resultado:

1073741824 -2147483648 1

questionAnswers(3)

yourAnswerToTheQuestion