mam problem z programem który konwertuje liczby dec na bin ZM.

package javaLab;

import java.util.Scanner;

public class zad12 {
	void convertDecToBin(long n ) {
		int[] tab = new int[32];
		long  index = 2147483648l;
			for (int i = 31 ; i >= 0 ; --i){
				if (i == 31 && n > 0) {
					System.out.println("+");
					System.out.println("+ index" + index);
					System.out.println("+ i"+ i);
					tab[31] = 0;
				}
				else if (i == 31 && n < 0) {
					System.out.println("- index" + index);
					System.out.println("- i"+ i);
					tab[31] = 1;
					System.out.println(tab[31]);
					n = n * -1;
				}
				
				else if (n > index) {
					System.out.println("if >");
					System.out.println("if > index" + index);
					System.out.println("if > i"+ i);
					System.out.println("if > n"+ n);
					tab[i] = 1;
					n = n - index;
					index = index / 2;
					System.out.println("-----n"+ n);
					System.out.println("=============================");
				}
				else if (n < index){
					System.out.println("else <");
					System.out.println("else < index" + index);
					System.out.println("else < i " + i);
					System.out.println("else < n " + n);
					tab[i] = 0;
					index = index / 2;
					System.out.println("=============================");
				}
				else if (n == index) {
					System.out.println("else ==");
					System.out.println("else == index" + index);
					System.out.println("else == i" +i );
					System.out.println("else == n " + n);
					tab[i] = 1;
					n = n - index;
					index = index /2;
					System.out.println("-----n"+ n);
					System.out.println("=============================");
				}
			}
		for (int i = 32 ; i >= 1 ; --i) {
			int b = i%4;
			if ( b == 0) {
				System.out.print("|");
			}
			System.out.print(tab[i-1]);
		}
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		long number;
		Scanner reading = new Scanner(System.in);
		number = reading.nextInt();
		zad12 systemZM = new zad12();
		systemZM.convertDecToBin(number);
	}

}

I mam takie pytanie bo problem polega na index tam ma odpowiednie wagi i moje pytanie jest takie czy int tam gdzie jest miejsce znaku też ma wage a dokładnie 2147483648 czy tam nie ma wag? Wydaje mi się że tam powinna być waga.