Rechtsshiftproblem
-
Kann mir denn niemand helfen?
-
Hallo.
Ich bräuchte wirklich dringend eure Hilfe!
-
Ignoriert ihr mich? Oder wollt ihr mir einfach nicht helfen? Wenn das Fall der ist, dann schließt doch einfach den Thread, dann weiß ich wenigstens was los ist!
-
Wie würdest Du es denn als Computersimulator machen? Also Du kannst nur die elemetaren Befehle, die der Computer auch kann und machst es mit Zettel un Papier.
-
Glaub mir bitte, das hab ich alles schon durch. Ich weiß nicht was falsch ist, sonst hätte ich ja hier keine Frage gestellt. Mittlerweile sieht der Code so aus:
int auswahl = 0; testchar.bits[auswahl] = 128; *testchar.bits = *testchar.bits >> pos-1; for(int i=0; i<n; i=i+1) { testchar.bits[auswahl] = testchar.bits[auswahl] >> 1; if(testchar.bits[auswahl] == 0) { auswahl = auswahl + 1; testchar.bits[auswahl] = 128; } if(((bv_neu.bits[pos/8]) & *testchar.bits) == testchar.bits[auswahl]) { maske.bits[i/8] = maske.bits[i/8] | (1 << (n-i-1)%8); } }
-
Von welchem Typ sind denn deine Variablen?
-
das sind alles char-Arrays....
-
Schon mal dran gedacht das char i.A. signed ist und 0b1000000 = -128 ist.
Da wird der arithmetische Shift genommen. Der schiebt das Vorzeichen mit.
-
Sollte ich dann also unsigned char nehmen?
-
Ähm, sorry sehe gerade, dass ich ja unsigned char in meiner Struktur verwende. Also an dem kann's nicht liegen. Funktinoieren tuts trotzdem noch nicht