Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Softwaretechnik » Bits verschieben » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 7 Beiträge
user684

das ist mein Hauptproblem ):
2. die Reihenfolge der Bits umkehrt und den entstehenden Zahlenwert in
einer neuen unsigned int Variable speichert

Wie können die Bitform und eine Zahl gleichzeitig gespeichert werden?

Und muss man die Zahl als double deklarieren... ODER als(unsigned int mit size of (double))


Und die Überprüfung findet doch mit einer do while Schleife statt(Überprüfung , dass die Zahl als ganze Zahl und als unsigned int darstellbar ist)
user684

Kannst du mir bitte beim Ansatz helfen, die Nullen anzufügen , an der invertierten Zahl?

Ansatz * int einsen = 0;
int nullen = 0;
void zaehler(int bitmuster,int *eins,int *null){
int einerstelle;
int i;

for(i=(sizeof(int)*8);i>=1;i--){
einerstelle = bitmuster & 1;
if(einerstelle){
*(eins++);
}else *(null++);
bitmuster = bitmuster >> 1;

Das natürlich in Kombination bzw. Ergänzung mit deinem Code....
Wie kann man das jetzt so umformen, dass es auch angefügt wird....
Was fehlt da noch, eine Schleife??? Und wie fügt man das zusammen ohne, dass das noch überladen wird und dann verfälschte Werte noch rauskommen...
Würdemich um deinen Rat sehr freuen
Karlito

Und die Ausgabe fehlt.
Karlito

Es erfüllt die gesamte Aufgabe. Es werden nur keine führenden nullen ans ende der invertierten zahl angefügt.
user684

Auf welchem Aufgabenteil bezieht sich das?

Diesen?
code:
1:
2:
3:
4:
5:
6:
7:
 for(i=(sizeof(int)*8);i>=1;i--){
    einerstelle = bitmuster & 1;
    if(einerstelle){
      *(eins++);
    }else *(null++);
    bitmuster = bitmuster >> 1;
  }

Und wenn ja kann man das besser optimieren, bzw. das size of trennen von der for Klammer...

Das soll doch die 1en zählen und gleichzeitig den Bitcode rückwärts ausgeben oder?
Wenn , nein, gib mir auch dazu tipps
Karlito

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
count = 0
inverse = 0
while (zahl)
{
 inverse <<= 1
 inverse += zahl & 1
 zahl >>=1
 count++
}
user684 Bits verschieben

Ich brauche dringend eure Hilfe bei einer Aufgabe, in der man die Anzahl(einer eingegeben Zahl) der vorkommen Einsen im Bitmuster zählt, die Reihenfolge der Bits (umgekehrt) in einer neuen Variable speichert-> Dann Ausgabe im Hexadezimalsystem...

Und wie macht man das so, dass das für eine beliebige eingebene Zahl funktioniert(z.B. cin >>)

Meine Ideen

Ich deklariere die Variablen bitanzahl, deklariere Anzahl für die 1 und 0
Per for Schleife und size of und Verknüpfung mit dem bitmuster= 00000000 zurückführen wieviele einser das Bitmuster hat