Einzelnen Beitrag anzeigen

gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#2

AW: Programm für Octalzahlen in Dezimalzahlen

  Alt 7. Dez 2018, 18:46
Es sind zwei Änderungen nötig: Es wird mit 8 multipliziert statt mit 2 und die Eingabe enthält Ziffern 0,1,2,...,6,7.

Um die Oktalzahl 1357 umzuwandeln, berechnet man ausgehend von der höchsten Ziffer
Code:
1*8 + 3 = 11
11*8 + 5 = 93
93*8 + 7 = 751
oder für 76543
Code:
7*8 + 6 = 62
62*8 + 5 = 501
501*8 + 4 = 4012
4012*8 + 3 = 32099
Du muß also die einzelnen Zeichen der Eingabe testen, ob sie in der Menge ['0', '1', ..., '6', '7'] enthalten sind. Wenn ja werden die Zeichen in die entsprechende Integerzahl umgewandelt, und wie gezeigt gerechnet.

Das ganze wird dann wie bei Basis 2 in eine Schleife gepackt (die hier dann einfach vorwärts durchlaufen wird, aber man kann die Sache so ähnlich wie bei Deiner Binärwandlung auch rückwärts durchlaufen; vorwärts kommt ohne die Variable Position aus). Der Vorwärtsalgorithmus ist analog zum Hornerschema (man rechnet ja Summen a[k]*8^k aus).

Geändert von gammatester ( 7. Dez 2018 um 22:07 Uhr) Grund: Tippfehlerkorrktur und Hinweis auf Horner
  Mit Zitat antworten Zitat