www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik C-Programm binär -> dez und dez -> bin


Autor: ivo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Tag

Hat jemand ein C-programm da stehen,
dass Zahlen von binär in dezimal und von
dezimal in binär rechnet?

Vielen Dank

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Woran scheitert es denn bei der Selbst-Programmierung?
So schwer ist das wirklich nicht.

Ansonsten: Der Windows Taschenrechner kann wunderbar umrechnen.

Autor: ivo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist mir klar, dass ich es mit dem Taschenrechner umrechnen kann, 
sollte aber ein Programm in C schreiben und mir fehlen die 
Lösungsansätze.
Hat niemand eine Bispielprogramm, wo ich einbisschen drauf spicken 
könnte?

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das ist doch wirklich ein triviales Problem, wenn du das nicht 
hinbekommst, solltest du die Finger ganz von der Programmierei lassen.
Und wenn du das "machen sollst", ist wohl Sinn der Übung, dass du dir 
selbst Gedanken sollst.

Autor: Xyz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
binärzahl -10 dann in ein register speichern wie oft die 10 vorkommt und 
den rest dazu rechnen.

Autor: vömi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kann nicht jemand das program posten. brauchen das für die schuel XD.

danke schon im voraus.

lg vömi

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Nochmal: Wo liegt denn das Problem?

Du wirst doch wohl irgendeinen Ansatz haben?

Fangen wir mal damit an: Wie lässt du den deinen
Benutzer die Binärzahl eingeben bzw. wie speicherst
du sie?
Möglich wäre zb: Er gibt sie als String ein und
gespeichert wird das Ganze daher in einem char-Array
  unsigned char Binaer[8];     // fuer 8-stellige Binärzahlen
                               // Jedes Array Element kann entweder
                               // 0 oder 1 sein, je nachdem
Die zugehörige Dezimalzahl ist dann ganz einfach
  unsigned int Zahl;

  Zahl = Binaer[0] * 128 +
         Binaer[1] * 64 +
         Binaer[2] * 32 +
         Binaer[3] * 16 +
         Binaer[4] * 8 +
         Binaer[5] * 4 +
         Binaer[6] * 2 +
         Binaer[7] * 1;
Dein Job: Mache die Eingabe, sodass eine Eingabe von
01011111
dazu führt dass im Array die entsprechenden Werte gesetzt
werden
  Binaer[0] = 0
  Binaer[1] = 1
  Binaer[2] = 0
  Binaer[3] = 1
  Binaer[4] = 1
  Binaer[5] = 1
  Binaer[6] = 1
  Binaer[7] = 1

Für Dezimal nach Binaer:
Das machst du indem du anstatt mit 2 zu multiplizieren, fortlaufend
durch 2 dividierst und den Rest betrachtest
Bsp 197

     197 / 2 = 96      197 % 2 = 1
      98 / 2 = 48       98 % 2 = 0
      49 / 2 = 24       49 % 2 = 1
      24 / 2 = 12       24 % 2 = 0
      12 / 2 = 6        12 % 2 = 0
       6 / 2 = 3         6 % 2 = 0
       3 / 2 = 1         3 % 2 = 1
       1 / 2 = 0         1 % 2 = 1

                                 ^
                                 |
                        hier ist die Binärdarstellung
                        unten ist die höchstwertige Stelle
197 dezimal entspricht binär   11000101

: Bearbeitet durch Moderator
Autor: vömi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vielen dank. jetzt sollte es gehen besten dank

Autor: hans peter (Gast)
Datum:

Bewertung
-2 lesenswert
nicht lesenswert
das ist doch wirklich ein triviales Problem, wenn du das nicht
hinbekommst, solltest du die Finger ganz von der Programmierei lassen.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hans peter wrote:
> das ist doch wirklich ein triviales Problem, wenn du das nicht
> hinbekommst, solltest du die Finger ganz von der Programmierei lassen.

Immer langsam mit den jungen Pferden.
Wer sowas noch nie gemacht hat und sich auch noch
nie Gedanken darüber gemacht hat, wie Zahlensysteme
funktionieren, kommt da alleine nicht so schnell drauf.

Autor: aaa (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das von  Xyz(Gast) finde ich besser weil die Zahlen gleich im BCD 
-Format
erscheinen.Kostet aber mehr rechenzeit.

Autor: ivo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Besten dank Herr buchegger

mit dem tipp konnte ich sehr viel anfangen und bin auch schon beinahe 
fertig.

besten dank und mit freundlichen grüssen IVO

Beitrag #4346726 wurde von einem Moderator gelöscht.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.