Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Binary TO Decimal



  • Hallo,
    ich versuche über ein LineEdit ein Binärmuster einzulesen und über eine LCDNumber auszugeben.
    Allerdings wird mir aus einen binäre Wert 0101 dezimal der Wert 10 ausgeben, was ja bekanntlich Flasch ist. Die Bit Reihenfolge ist gedreht, das niederwertige Bit ist nicht mehr rechts sondern links.

    Ich weiß nicht wie ich es drehen kann?

    void Dialog::on_pushButton_2_clicked()
    {
        
        //ui->lineEdit->setAlignment(Qt::AlignRight);
        //ui->lineEdit->setLayoutDirection(Qt::RightToLeft);
        
        
        QString bin;
        double ausgabe = 0;
        bin = ui->lineEdit->text();
        int end = bin.size();
        
        
        for(int i = 0; i != end; ++i)
        {
            QString c = bin[i];
            if (c == '1' || c == '0'){
                if (c == '1')
                    ausgabe += pow(2, i);
            }
        }
        
        ui->lcdNumber->display(ausgabe);
    }
    
    

  • Lifetime Qt Champion

    Einfach die for-Schleife rückwärts ausführen. Also bei size() - 1 anfangen und auf 0 runter zählen.
    Sorry - natürlich dann auch anstatt pow(2, i) pow (2, size() - i - 1)

      for(int i = 0; i < bin.size(); ++i)
      {
          QChar c = bin[i];
          if (c == '1')
            ausgabe += pow(2, bin.size() - i - 1);
      }
    

    Oder am einfachsten: QString::toInt()



  • @Christian-Ehrlicher said in Binary TO Decimal:

    Sorry

    Ist "Sorry" jetzt ein Deutsches Wort? :)



  • Ich bedanke mich bei euch und wünsche einen gute Rutsch ins neue Jahr.



  • @JonB

    Ist Kindergarten ein englisches Wort?! :)

    Some English words are commonly used in German, esp. on the Internet or in chats / messengers etc.



  • @Pl45m4
    Yes, kindergarten is a perfectly English word :)
    When I was at school and learned German there was no "Sorry". Nor did Kafka/Goethe ever use it.
    Internet chat has a lot to answer for!

    Frohes Neues Jahr!!



  • @JonB

    Back in Goethe times the German language was a lot different. I would say, comparable to Shakespeare vs. the English, the younger generation speaks nowadays.


Log in to reply