Frage

Ich habe eine kleine Funktion in C geschrieben, die die gleiche Arbeit wie standart Funktion `fcvt‘ fast tun. Wie Sie vielleicht wissen, nimmt diese Funktion einen Float / Double und einen String machen, diese Zahl in ANSI-Zeichen darstellt. Alles funktioniert; -)

Zum Beispiel für Zahl 1,33334, meine Funktion gibt mir string: „133334“ und spezielle Integer-Variable `decimal_part‘, in diesem Beispiel aufgebaut 1 sein wird, das nur 1 Symbol in Dezimalteil bedeutet, sonst ist alles ein Bruch .

Jetzt bin ich gespannt, was standart C-Funktion `printf‘ zu tun. Es kann% ein oder% e als Format-String nehmen. Lassen Sie mich für% e zitieren (Link junked):

  
    

"double" Argument ausgegeben in wissenschaftlicher Notation

         

[-] m.nnnnnne + xx

         

... Der Exponent enthält immer zwei Ziffern.

  

Er sagte: „Der Exponent enthält immer zwei Ziffern“. Aber was ist ein Exponent? Dies ist die wichtigste Frage. Und auch, wie diese ‚Exponent‘ bekommen von meiner Funktion oben oder von `fcvt‘.

War es hilfreich?

Lösung

Die Notation könnte besser erklärt werden, wenn wir die e erweitern:

[-]m.nnnnnn * (10^xx)

Sie haben also eine Stelle von m (von 0 bis 9, aber es wird immer nur 0 sein, wenn der gesamte Wert 0) und mehrere Ziffern von n. Ich denke, es wäre am besten mit Beispielen zeigen:

1 = 1.0000 * 10^0 = 1e0
10 = 1.0000 * 10^1 = 1e1
10000 = 1.0000 * 10^4 = 1e4
0.1 = 1.0000 * 10^-1 = 1e-1

1,419 = 1.419 * 10^3 = 1.419e3
0.00000123 = 1.23 * 10^-5 = 1.23e-5

Sie können wissenschaftliche Schreibweise aus Google nachschlagen, aber es ist nützlich für die Expression von sehr großen oder kleinen Zahlen wie 1232100000000000000 wäre 1.2321e24 (ich zähle eigentlich nicht, kann Exponent ungenau sein).

In C, ich glaube, Sie tatsächlich den Exponenten aus den oberen 12 Bits extrahieren (die erste ist das Zeichen, das Sie ignorieren müssen). Siehe: IEEE758-1985 Floating Point

Andere Tipps

Der Exponent wird die Kraft 10 dann multipliziert mit dem Basis angehoben wird.

SI bei wikipeida erläutert. http://en.wikipedia.org/wiki/Scientific_notation

m.nnnnnne+xx logisch ist gleich m.nnnnnn * 10 ^ +xx

In der wissenschaftlichen Notation, der Exponent die zehn auf die XX Macht ist, so kann 1234.5678 als 1.2345678E03 dargestellt werden, wobei die normierte Form von 10 ^ 3 multipliziert wird, um die „echte“ Antwort zu bekommen.

400 = 4 * 10 ^ 2

2 ist der Exponent.

Wenn Sie eine Zahl in wissenschaftlicher Notation schreiben dann der Exponent ist Teil dieser Notation.

Sie können eine vollständige Beschreibung hier sehen http://en.wikipedia.org/wiki/Scientific_notation , aber im Grunde eine Reihe, es ist nur eine andere Art und Weise typisch für sehr große oder sehr kleine Zahlen.

zum schreiben

Angenommen, Sie haben die Nummer 300, die auf 3 * 100 gleich oder 3 * 10 ^ 2 in wissenschaftlicher Notation.

Wenn Sie% e wird es gedruckt werden, wie 3.0E + 02

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top