Binär <--> Dezimal (Bitset: Nur bis 255 möglich)

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Binär <--> Dezimal (Bitset: Nur bis 255 möglich)

    Nabend,
    ich habe ein Problem mit dem Umwandeln von Dezimal-Zahlen ins Dualsystem. Wenn ich Zahlen bis 255 eingebe und umwandeln lasse, tritt kein Problem auf. Wenn ich aber eine größere Zahl eingebe, fängt das Programm wieder von 0 an zu zählen.

    Source Code

    1. #include <iostream>
    2. #include <bitset>
    3. #include <string>
    4. #include <typeinfo>
    5. using namespace std;
    6. int main ()
    7. {
    8. unsigned long long int number = NULL;
    9. cin >> number;
    10. bitset<8> binary (number);
    11. cout << "Zahl: " << binary.to_ulong() << "(" << number << ")" << endl;
    12. cout << "Binaer: " << binary << endl;
    13. //Überprüfung was für Variablentyp vorliegt
    14. cout << "Var-Typ: " << typeid(binary.to_ulong()).name();
    15. return 0;
    16. }
    Display All


    Als Fehlersuchhilfe hab ich mir mal den Variabln-Typen ausgeben lassen, der jedoch "m" ist. Ich hab noch nie von so einem Variablen-Typ gehört :D
    Hab momentan keine Ansätze, wie man das Problem lösen könnte. 255 ist ja die max Anzahl des Var-Typs char. Mehr ist mir noch nicht eingefallen.

    Wäre dankbar für Problemlösungen oder Lösungsansätze :D
  • Source Code

    1. #include <iostream>
    2. #include <bitset>
    3. #include <string>
    4. #include <typeinfo>
    5. using namespace std;
    6. int main ()
    7. {
    8. int a = 15;
    9. char b = 4;
    10. string c("hallo");
    11. cout << typeid(a).name() << endl;
    12. cout << typeid(b).name() << endl;
    13. cout << typeid(c).name() << endl;
    14. }
    Display All


    Das gibt folgendes aus:

    i
    c
    Ss

    Also würd ich mal sagen der Anfangsbuchstabe eines Variablen-Typs. MSDN sagt, dass es keinen Variablentyp mit m als Anfangsbuchstabe gibt