2 Stimmen

Wie kann ich die Ausgabe eines Programms umkehren?

Ich muss Dezimalzahlen wie 43,62 in Binärzahlen umwandeln. Also habe ich zuerst ein Basic-Programm geschrieben, das 43 in Binärzahlen umwandelt. Aber ich bemerke, dass mein Programm die Binärzahl in umgekehrter Reihenfolge ausgibt, also 1 1 0 1 0 1 statt 1 0 1 0 1 1.

Mein Code:

#include <iostream>

using namespace std;

int main()
{
    int number;
    int remainder;

    cout << "Enter a integer: ";
    cin >> number;

    while(number != 0)
    {
        remainder = number % 2;
        cout << remainder << " ";
        number /= 2;
    }

    int pause;
    cin >> pause;

    return 0;
}

0voto

cpx Punkte 16132

In C++ können Sie dazu auch einen Bitset-Container verwenden,

#include <bitset>

int i = 43;
std::bitset<sizeof(int)*CHAR_BIT> bin(i);

0voto

rerun Punkte 24318

Verwenden Sie einfach String-Funktionen

string s ;

while(number != 0)
{
    remainder = number % 2;
    string c = remainder ? "1": "0";
    s.insert(s.begin(),c.begin(),c.end());
    number /= 2;
}

0voto

unexplored Punkte 1354

Wenn Sie eine solche Umwandlung vornehmen, indem Sie den Rest beibehalten, wird das Ergebnis immer rückgängig gemacht. Wie vorgeschlagen verwenden Sie bitwise & :

unsigned char bit = 0x80; // start from most significant bit
int  number = 43;
while(bit)
{
    if( bit & number ) // check if bit is on or off in your number
    {
       cout << "1";
    }
    else
    {
       cout << "0";
    }
    bit = bit >>1; // move to next bit
}

Dieses Beispiel geht alle 8 Bits der Zahl durch und prüft, ob das Bit ein- oder ausgeschaltet ist und druckt es entsprechend aus.

0voto

mal Punkte 143

Beste Option - C++-Stringstream für die Formatierung von I/O verwenden

// Add the following headers
    #include <sstream>
    #include <algorithm>

    // your function

    stringstream ss;

    // Use ss in your code instead of cout

    string myString = ss.str();
    std::reverse(myString.begin(),myString.end());
    cout << myString;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X