[C/C++] (Vorzeichenbehaftete-)dezimalzahl in Dualzahl mit Array

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Honda, 30. Oktober 2011 .

Schlagworte:
  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  1. #1 30. Oktober 2011
    (Vorzeichenbehaftete-)dezimalzahl in Dualzahl mit Array

    Tag,

    ich stehe vor dem Problem, dass ich eine vorzeichenbehaftete Dezimalzahl einlesen möchte und anschließend daraus die Dualzahl errechnen möchte.
    Die Zahlensystem sind mir ein Begriff und schriftlich ohne Probleme lösbar.
    Bis dato habe ich, ganz simpel einen Code geschrieben, der das ganze Prozedere für positive Dezimalzahlen umsetzt.

    Ich hänge nun allerdings an dem Problem mit der Übertragsrechnung vom Zweierkomplement.
    Leider hat mir weder die Suche, noch Google wirklich helfen können, da das aktuell mit einem Array gelöst wird.
    Andererseits wäre bit-weises Rechtsshiften eine alternative.

    Code:
    void main()
    {
    
     int binaer[10], i, dezi;
    
     printf("Geben Sie bitte eine Dezimalzahl ein: ");
     scanf("%d", &dezi);
    
     // Berechnung der Binärzahl
     for(i=0;i<10;i++)
     {
     binaer[i] = dezi%2;
     dezi=dezi/2;
     }
    
     // Ausgabe der Dezimalzahl im dualen Zahlensystem
     printf("Binaerzahl:\n");
     for(i=9;i>=0;i--)
     {
     printf("%d", binaer[i]);
     }
    
     // Einerkomplement (negation des array binaer[])
     printf("\n\nEinerkomplement: \n");
     for(i=9;i>=0;i--)
     {
     printf("%d", !binaer[i]);
     }
     printf("\n");
    }
    
    Wie berechne ich nun bei dem folgenden Zweierkomplement den Übertrag in C?

    Danke und Grüße,
    Honda
     

  2. Anzeige
    Heute: Deals & Sale mit stark reduzierten Angeboten finden.
  3. #2 30. Oktober 2011
    AW: (Vorzeichenbehaftete-)dezimalzahl in Dualzahl mit Array

    so?

    Code:
     int decimal = 5;
    
     for (unsigned int k = 2147483648; k > 0; k >>= 1)
     {
     if (decimal & k)
     printf("1");
     else
     printf("0");
     }
     printf("\n");
     
  4. #3 31. Oktober 2011
    AW: (Vorzeichenbehaftete-)dezimalzahl in Dualzahl mit Array

    Hey kleine Frage. Was macht das "k >>= 1" ?
     
  5. #4 31. Oktober 2011
    AW: (Vorzeichenbehaftete-)dezimalzahl in Dualzahl mit Array

    Die Bits um n nach rechts/links verschieben. In dem Fall um 1 nach rechts.

    siehe hier
     

  6. Videos zum Thema
Die Seite wird geladen...