Oktal in Dezimal umrechnen in C Programmierung

4 Antworten

Du musst dir erst einmal klar machen, was dein Programm macht.

Beim ersten Durchlesen deines Programms hatte ich den Eindruck, dein Programm wandelt eine Zahl "zahl" in eine Zahl "dezimalzahl" so um, dass die Zahl "zahl" in der Dezimalschreibweise die selbe Darstellung hat wie die Zahl "dezimalzahl" in der Oktalschreibweise.

Das bedeutet, dass die Zahl 12345 (Dezimal) in die Zahl 012345 (Oktal) umgewandet wird.

Es wird die Oktalzahl ausgegeben ("%.0o" in printf). Bitte beachte, dass "%.0o" eigentlich nicht korrekt ist, da "o" als Integer keine Hinterkommastellen haben kann. Korrekt wäre "%o" ohne ".0".

Wenn du die Dezimaldarstellung der Variable "dezimalzahl" haben willst, musst du "%u" anstatt "%o" verwenden.

Wenn du eine Zahl aus dem x-System in das Dezimalsystem (also z.B. Oktal nach Dezimal) umwandeln willst, emfehle ich dir, die Zahl direkt aus dem String zu bilden und nicht eine Codierung zu verwenden, bei der in einer Zahl im Dezimalsystem eine Ziffer einer Ziffer im x-System entspricht.

4

Wie genau macht man das mit dem String dann?

0

Bekommst du eine Fehlermeldung oder stimmt das Ergebnis nicht? Wie sind die Variablen definiert?

Hast du mal probiert, testweise die Zwischenergebnisse auszugeben?

49

Ich würde vermuten, dass du da einen Konversionsfehler bei den Datentypen hast. Du benutzt in der Ausgabe ja Octalzahlen (daher das "o"), rechnest aber so, als ob du Integer hast.

Zumindest müsste in der Ausgabe ja %.0d\n oder %.0ld\n stehen. Denn dezimalzahl ist ja nicht als octalzahl defniert.

0
4

Die Variablen sind alle Integer, jedoch soll er nur Oktalzahlen einlesen können, deswegen hab ich definiert:

printf("Oktal -> Dezimal\n"); printf("Geben Sie eine Zahl zur Umrechnung ein.\n"); if (1 == scanf("%o", &zahl)) {

Jedoch können immer noch 8er und 9er eingegeben werden ohne dass eine Fehlermedlung über "else" kommt.

0

Du hast da ein §x"==x vergessen

4

wo und was macht das?

0

Spannungsteiler: wie mit Parallelwiderständen umgehen?

Ich habe das Problem, dass ich nicht richtig weiß, wie ich die Maschen legen darf - welche Zweige darf einbe Masche kreuzen und welche Widerstände bezieht man mit ein? Ich führe mal folgendes Beispiel an: http://img11.imageshack.us/img11/7568/s1cf.png So wie ich das sehe, werden die Maschen einmal innerhalb der rechten 2/3 des Nezwerks, also direkt links von der Spannungsquelle bis direkt rechts von R4 gelegt und ein anderes mal komplett außenrum. Wieso kann ich also nicht für U1 direkt sagen U1 = U0R1/(R1 + R2 + R3 + R5) oder entsprechend U4 =U0 R4/(R4 + R5)? Warum muss ich im ersten Fall den parallel geschalteten R4 berücksichtigen aber nicht R7 oder R8, die ja auch parallel zu R4 und R1 bis R3 geschaltet sind?

...zur Frage

Wie funktioniert Math.random() in Java?

Math.random() erzeugt eine "zufällige" Zahl zwischen 0 und 1. Aber wie genau wird diese erzeugt. Habe dazu im Internet noch nichts gefunden.

Ich wäre über einen Link dankbar, in dem der Algorithmus erklärt wird, bzw. wie man den Wert vorhersagen kann.

...zur Frage

Operationsverstärker - Formel umstellen

Hallo,

die Formel lautet: V2 = (1+(R2/R1))/(1+(R3/R4))

Das Ganze soll wahlweise nach R1, R2, R3 oder R4 umgestellt werden. Ich bin scheinbar zu doof dazu. Bitte um Hilfestellung. :/

...zur Frage

Formel unstellen?

Formel von Brückenschaltung

R1/R2=R3/R4

Kann mir jemand sagen wie die jeweilige Formel für R1,R2, R3,R4 ist? Also umgestellt?

...zur Frage

Hallo... Meine Frage bezieht sich auf dieses Bespiel?

Welchen Wert muss der Wiederstand R5 haben, wenn die Ströme durch R2 und R4 gleich groß sein sollen? Stelle dafür eine -

R1, R2 und R3 sind parallel geschalten . Ebenso R4 und R5.

...zur Frage

Elektrotechnik Formel umstellen

Hey Leute,

Kann mir jemand sagen wie diese Formel auf R2 umgestellt lautet? Uab=R1/R2-R3/R4

Dankeschön im vorraus :)

...zur Frage

Was möchtest Du wissen?