e.full Geschrieben 17. November 2008 Geschrieben 17. November 2008 hallo informatiker, bin grad neu am programmieren, und weiss jetzt nicht unbedingt wie man sowas macht, und würde mich freuen wenn ihr mir elfen würdet: also ich soll in der Sprache C eine Funktion int oddBits (int schreiben, die die Anzahl gesetzter Bits an ungeraden Positionen zurückliefert, also für eine Zahl b mit der Bitdarstellung b_n b_n-1 .... b_2 b_1 die summe b_n-1 + b_n-3+ b_1 berechnet. ich soll dabei eine Bitmaske verwenden, die ich von 1 bis INT_MAX/2 jeweils um 2 Bits nach links schiebe. INT_MAXist in limits.h definiert. ich habe echt keine ahnung wie ich das machen soll, da ich bisher nicht soviel erfahrung mit programmieren gemacht habe und bitte um Lösungsvorschläge lg Zitieren
Klotzkopp Geschrieben 17. November 2008 Geschrieben 17. November 2008 Zeig bitte ein wenig mehr Eigeninitiative. Wenn du nur die Aufgabenstellung ablädst, und behauptest, dass du "keine Ahnung" hast, liegt die Vermutung nahe, dass du nur jemanden suchst, der deine Hausaufgaben macht. Die Aufgabenstellung enthält bereits eine ziemlich detaillierte Anleitung, wie die Aufgabe zu lösen ist. Zitieren
e.full Geschrieben 17. November 2008 Autor Geschrieben 17. November 2008 ich bin nicht so sicher aber ich habe mal so angefangen: #include <stdio.h> main () { int b; also ich nehme hier die eingangszahl b, jetzt muss ich ja irgendwie die zahl der gesetzten bits nehmen welche am anfang 0 ist, also n=0 ich weiss nicht wie ich das machen soll, und wie es weiter geht, es ist nciht meine absicht einfach die lösung kriegen. will es auch verstehn danke lg Zitieren
Klotzkopp Geschrieben 17. November 2008 Geschrieben 17. November 2008 Du brauchst eine Funktion, die int zurückgibt, oddBits heißt und einen int-Parameter mit Namen b hat. In dieser Funktion brauchst du eine weitere int-Variable für die Maske, die du mit 1 initialisierst, sowie einen Zähler, den du mit 0 initialisierst. Dann machst du in einer Schleife eine bitweise-Und-Verknüpfung zwischen b und der Maske. Wenn dabei nicht 0 herauskommt, erhöhst du den Zähler um 1. Danach schiebst du die Maske um 2 nach links und beginnst von vorn. Die Schleife musst du so lange durchlaufen, wie Maske <= INT_MAX/2 ist. Dann gibst du den Zähler zurück. Zitieren
e.full Geschrieben 17. November 2008 Autor Geschrieben 17. November 2008 danke für ihre antwort, aber mein problem ist das ganze jetzt in c++ zu schreiben, war denn überhaupt mein anfang richtig Zitieren
Klotzkopp Geschrieben 18. November 2008 Geschrieben 18. November 2008 danke für ihre antwort, aber mein problem ist das ganze jetzt in c++ zu schreiben, Eigentlich habe ich bereits den größten Teil der Arbeit gemacht, denn das, was ich geschrieben habe, kann man 1 zu 1 in Code umsetzen. Wenn du das nicht kannst, kannst du einfach nicht genug C++, um diese Aufgabe zu lösen. war denn überhaupt mein anfang richtig Nein. Den Header stdio.h gibt's in C++ nicht, die main-Funktion muss int zurückgeben und überhaupt sollst du ja eine zusätzliche Funktion schreiben. Wer gibt denn jemandem, der offenbar gar kein C++ kann, so eine Aufgabe? Zitieren
TDM Geschrieben 18. November 2008 Geschrieben 18. November 2008 $Topic: Binary Logic Bit Operations In C and C++ Anmerkung: also ich soll in der Sprache C eine Funktion [...] Den Header stdio.h gibt's in C++ nicht [...] Zitieren
Klotzkopp Geschrieben 18. November 2008 Geschrieben 18. November 2008 Hmmm. mein problem ist das ganze jetzt in c++ zu schreiben, Anscheinend weiß e.full selbst nicht so genau, welche Sprache er benutzen soll. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.