Hallo,
ich arbeite gerade ein paar Übungsklausuren durch und hab ein paar Probleme & Fragen bei denen ihr mir vll. weiterhelfen könntet:
1) Ich komme irgendwie mit diesen "Bitweisen operatoren" (trotz googlen) noch nicht klar, kann mir das mal einer erklären?
Ich soll Typ & Wert eines Ausdrucks angeben:
x = 23;
x ^ 3
Lösung(Typ/Wert): int, 20
Wie kommen die da drauf? Ich weiß nur dass ich die 23 zunächst wohl in eine Bitfolge wandeln muss?! Also 10111. Und dann?
2) Die Bitfolge 11001001 soll den Wert -55 darstellen und dadurch ein Byte-Wert sein. Woher weiß ich dass es nicht 200 ist? Also ein negativer Wert raus kommt?
3) Die Aufgabe ist anzugeben ob der folgende Code terminiert und welche Werte rauskommen:
Die Schleife soll terminieren und die Werte sind a = 2, b = 1
Also irgendwie will die Schleife bei mir nicht terminieren ... Das break unterbricht doch nur die Switch-Anweisung , nicht das if oder? Wenn ichs mal kommentiert durchlaufen lasse, werd ich auch nicht schleuer ... https://ideone.com/UFWwH9
4) Ich hab eine rekursive Methode und ich soll unter anderem Sagen ob der Aufruf für alle x <= 0, y <= 0 terminiert. (Antwort ist nein tut es nicht, beispielsweise für (f1,2) soll es nicht terminieren) Die Frage die ich habe ist, wie geht man am Besten an so eine Frage ran? Einfach drauf los Werte eingeben und rumprobieren? Ist in einer Klausur sicherlich aus Zeitgründen eher suboptimal ...
ich arbeite gerade ein paar Übungsklausuren durch und hab ein paar Probleme & Fragen bei denen ihr mir vll. weiterhelfen könntet:
1) Ich komme irgendwie mit diesen "Bitweisen operatoren" (trotz googlen) noch nicht klar, kann mir das mal einer erklären?
Ich soll Typ & Wert eines Ausdrucks angeben:
x = 23;
x ^ 3
Lösung(Typ/Wert): int, 20
Wie kommen die da drauf? Ich weiß nur dass ich die 23 zunächst wohl in eine Bitfolge wandeln muss?! Also 10111. Und dann?
2) Die Bitfolge 11001001 soll den Wert -55 darstellen und dadurch ein Byte-Wert sein. Woher weiß ich dass es nicht 200 ist? Also ein negativer Wert raus kommt?
3) Die Aufgabe ist anzugeben ob der folgende Code terminiert und welche Werte rauskommen:
Java:
a = 2; b = 3;
for (int i = a; i < 5*a; i = i + 2) {
switch ( i % 3) {
case 0: a = a - 1; b = b / 2; break;
case 1: a = a + 1; b = b +1; break;
}
}
Also irgendwie will die Schleife bei mir nicht terminieren ... Das break unterbricht doch nur die Switch-Anweisung , nicht das if oder? Wenn ichs mal kommentiert durchlaufen lasse, werd ich auch nicht schleuer ... https://ideone.com/UFWwH9
4) Ich hab eine rekursive Methode und ich soll unter anderem Sagen ob der Aufruf für alle x <= 0, y <= 0 terminiert. (Antwort ist nein tut es nicht, beispielsweise für (f1,2) soll es nicht terminieren) Die Frage die ich habe ist, wie geht man am Besten an so eine Frage ran? Einfach drauf los Werte eingeben und rumprobieren? Ist in einer Klausur sicherlich aus Zeitgründen eher suboptimal ...
Java:
static int f(int x, int y) {
if ( x == 0)
return 2;
else if ( y <= 1)
return 1;
else return f(x-2,y-1)-2*f(x-2,y);
}