N
newbie08
Gast
Hallo,
ich möchte Binärzahlen in ein boolsches Array schreiben.
Das kleinste Bit steht an der 0.-ten Stelle, also z.B.:
Die Zahl 6 ist binär 110, also: boolean[] a = { false, true, true};
Nehme man noch die Zahl 100 (=4 im Dezimalsystem), boolean[] b = { false, true, true};
Ich will nun eine Methode schreiben, die als Parameter 2 boolsche Felder entgegennimmt und vergleicht.
Falls a < b soll es -1 sein, für a > b soll es 1 werden und für a = b (falls die beiden werte identisch sind) 0.
Meine Implementation ist:
Wo liegt der Fehler in der Abfrage der for-schleife?
ich möchte Binärzahlen in ein boolsches Array schreiben.
Das kleinste Bit steht an der 0.-ten Stelle, also z.B.:
Die Zahl 6 ist binär 110, also: boolean[] a = { false, true, true};
Nehme man noch die Zahl 100 (=4 im Dezimalsystem), boolean[] b = { false, true, true};
Ich will nun eine Methode schreiben, die als Parameter 2 boolsche Felder entgegennimmt und vergleicht.
Falls a < b soll es -1 sein, für a > b soll es 1 werden und für a = b (falls die beiden werte identisch sind) 0.
Meine Implementation ist:
Code:
public byte compare(boolean[] a, boolean[b])
{
if(a.length == b.length)
{
for(int i = a.length-1; i > -1; i--)
{
if(a[i] == !b[i]) return -1;
else if(!a[i] == b[i]) return 1;
}
return 0;
}
else if(a.length > b.length) return 1;
else if(a.length < b.length) return -1;
}
Wo liegt der Fehler in der Abfrage der for-schleife?