Entero sin firmar en Javascript

Estoy trabajando en una página que procesa la información de la dirección IP, pero se ahoga por el hecho de que los enteros están firmados. Estoy utilizando operadores bitwise para acelerarlo, pero el bit 64 (el distintivo firmado / sin firmar) lo está arruinando.

¿Hay alguna forma de forzar que un número no se firme en Javascript? Parece que funciona bien, hasta que la subred es mayor que 30, o menor que 2.

Prueba esto:

<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