Guten Abend,
ich versuche mit zwei for-Schleifen die Werrte aus 2 eindimensionalen Arrays mit logischen Operatoren zu verbinden. Die Werte werden in einer anderen Methode aus einer Folge von nullen und einsen berechnet. Dieser Endwert soll dann wieder in ein Array abgelegt werden. Leider bekomme ich da eine ArrayIndexOutOfBoundsException. Ich steh irgendwie auf dem Schlauch und komme nicht so richtig weiter. Ich hoffe das war verständlich. Kann mir jemand sagen wo mein Denkfehler ist?!?!
Hier der Code
ich versuche mit zwei for-Schleifen die Werrte aus 2 eindimensionalen Arrays mit logischen Operatoren zu verbinden. Die Werte werden in einer anderen Methode aus einer Folge von nullen und einsen berechnet. Dieser Endwert soll dann wieder in ein Array abgelegt werden. Leider bekomme ich da eine ArrayIndexOutOfBoundsException. Ich steh irgendwie auf dem Schlauch und komme nicht so richtig weiter. Ich hoffe das war verständlich. Kann mir jemand sagen wo mein Denkfehler ist?!?!
Hier der Code
Java:
public class Volladdierer {
public boolean[] barray1 = new boolean[5];
boolean[] barray2 = new boolean[5];
public int p, q = 0;
public boolean temp, sum1;
public void convertArray(DezToBin param_DezToBin) {
for (int i = param_DezToBin.binZahl3.length - 1; i >= 0; i--) {
if (param_DezToBin.binZahl3[i] == 1) {
barray1[p] = true;
} else {
barray1[p] = false;
}
p++;
}
for (int j = param_DezToBin.binZahl4.length - 1; j >= 0; j--) {
if (param_DezToBin.binZahl4[j] == 1) {
barray2[q] = true;
} else {
barray2[q] = false;
}
q++;
}
}
public void compute() {
boolean sum[] = new boolean[5];
boolean cin = false;
int k = 0;
Gatter g = new Gatter();
for(int i = 0; i < barray1.length-4; i++){
System.out.print(barray1[i]+" ");
}
System.out.println();
for(int j = 0; j < barray2.length-4; j++){
System.out.print(barray2[j]+" ");
}
System.out.println();
// hier werden die werte aus beiden arrays mit logischen operatoren
// "berechnet"
for (p = barray1.length - 1; p >= 0; p--) {
for (q = barray2.length - 1; q >= 0; q--) {
// XOR Verknuepfung
temp = g.setOr(g.setAnd(g.setNotX(barray1[p]), barray2[q]), g.setAnd(barray1[p], g.setNotY(barray2[q])));
// Mithilfe von temp den endgueltigen Wert bestimmen
sum1 = g.setOr(g.setAnd(g.setNotX(temp), cin), g.setAnd(temp, g.setNotY(cin)));
// An dieser Stelle tritt eine ArrayIndexOutOfBoundsException auf
sum[k] = sum1;
k++;
}
System.out.println();
}
}
}