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 .