Domanda

ho scritto una piccola funzione in C, che quasi fare lo stesso lavoro come funzione standart `fcvt'. Come forse sapete, questa funzione prende un galleggiante / doppio e fare una stringa, che rappresenta il numero di caratteri ANSI. Tutto funziona; -)

Ad esempio, per il numero di 1,33,334 mila, la mia funzione mi dà corda: "133334" e istituito speciali variabile intera `decimal_part', in questo esempio sarà 1, il che significa che in parte decimale solo 1 simbolo, tutto il resto è una frazione .

Ora Sono curioso di sapere cosa fare funzione di standart C `printf'. Si può prendere un% o% e come stringa di formato. Cito per% e (link junked):

  
    

"doppio" argomento viene emesso in notazione scientifica

         

[-] m.nnnnnne + xx

         

... L'esponente contiene sempre due cifre.

  

E ha detto: "L'esponente contiene sempre due cifre". Ma che cosa è un esponente? Questa è la domanda principale. E inoltre, come ottenere questo 'esponente' dalla mia funzione di cui sopra o da `fcvt'.

È stato utile?

Soluzione

La notazione potrebbe essere spiegato meglio se espandiamo la e:

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

In modo da avere una cifra di m (da 0 a 9, ma sarà sempre e solo essere 0 se l'intero valore è 0), e diverse cifre di n. Credo che potrebbe essere meglio per dimostrare con esempi:

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

È possibile cercare la notazione scientifica fuori di Google, ma è utile per esprimere numeri molto grandi o piccoli come 1.232.100 mille miliardi sarebbe 1.2321e24 (non ho davvero contare, esponente può essere impreciso).

In C, penso che si può effettivamente estrarre l'esponente dai primi 12 bit (il primo è il segno che si dovrà ignorare). Vedere: IEEE758-1985 virgola mobile

Altri suggerimenti

L'esponente è la potenza 10 viene sollevata per poi moltiplicato per la base.

SI è spiegato in wikipeida. http://en.wikipedia.org/wiki/Scientific_notation

m.nnnnnne+xx è logicamente uguale a m.nnnnnn * 10 ^ +xx

Nella notazione scientifica, l'esponente è il dieci al potere XX, in modo da 1234,5678 può essere rappresentato come 1.2345678E03 dove la forma normalizzata viene moltiplicato per 10 ^ 3 per ottenere la risposta "reale".

400 = 4 * 10 ^ 2

2 è l'esponente.

Se si scrive un numero in notazione scientifica, allora l'esponente è parte di quella notazione.

Si può vedere una descrizione completa qui http://en.wikipedia.org/wiki/Scientific_notation , ma in fondo è solo un altro modo di scrivere un numero, in genere utilizzato per molto grandi o molto piccoli.

Diciamo che avete il numero 300, che è pari a 3 * 100, o 3 * 10 ^ 2 in notazione scientifica.

Se si utilizza% e che verrà stampato come 3.0e + 02

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top