Witam , potrzebuje napisać program który zamienia mi liczbę z systemu dziesiątkowego na system zapisu znak moduł a następnie na ZU1 i ZU 2. Udało mi się dojść do momentu konwersji na ZU1

import java.util.Scanner;
public class Kozak5 
{

	
	public static void main(String[] args)
	{
		Scanner in = new Scanner(System.in);
		int x = in.nextInt();
		int y = x;
		int t[]=new int [32];
		int i = 1;
		if(x>0)
			t[0]=0;
		else if(x<0)
			t[0]=1;
		while(x!=0)
		{
			t[i]=x%2;
			if(t[i]==-1)
				t[i]=1;
			i++;
			x=x/2;
			
		}
		
		for(int o=i;o!=0;o--)
		{
			System.out.print(t[o]);
			
		}

		
		
				System.out.println("");
				if(y<0)
				{
					System.out.println("W ZU 1 liczba ta wynosi");
					System.out.print(t[0]);
					for(int p=i-1;p!=0;p--)
						
							System.out.print(1-t[p]);
					
				
					
					
				}
		
		
	}
}



Żeby przejść na ZU1 trzeba zanegować wszystkie bity w zapisie ZM oprócz bitu znakowego czyli pierwszego . I to zrobiłem bo program mi przepisuje pierwszy bit i potem je neguje ale w ZU2 aby otrzymać liczbę ujemną muszę zanegować wszystkie bity między pierwszą i ostatnią jedynką ( i nie negować tych jedynek ) a zera za ostatnią jedynką mam przepisać . I teraz mam pytanie czy istnieje jakaś komenda która wyznaczy mi wszystkie jedynki w tablicy aby program faktycznie zamieniał mi tylko bity między tymi jedynkami . No i oczywiście czy istnieje jakaś komenda aby przesunąć elementy tablicy . I czy ktoś jest w stanie mi wyjaśnić dlaczego jak wypisuje liczbę ZM działa mi normalnie od i a jak neguje bity w ZU1 to wydawało mi się że powinno w pętli uwzględnić te same bity jednak wtedy nie działało i musiałem wpisać i-1 .