Zehnerpotenzen in C: z.B 10^3 = 100

Gast #3007398
Lesenswert?

Hallo zusammen,
habe eben an einer Funktion in C gesucht, um Zehnerpotenzen zu erzeugen.
Also ein Variable hat den Wert 3, dann möchte ich 1000 erhalten, bei 4 
dann 10000  u.s.w.
Leider hat 10^Varriable  nicht funktioniert.
Nach dem nachlesen in einem C-Buch habe ich gesehen, das ^  bitweise 
exklusivoder ist.
Habe das Problem jetzt aufwendig in einer Schleife gelöst.

Frage:  Gibt es in C wirklich keine Potenzen ?

Gruß Dirk
#3007572
Lesenswert?

Hallo,

ich mache das manchmal so, dass ich ein Array im Flash anlegen.

Bedingung n E [0,..,9], f(n) = 10^n
1
#include <avr/pgmspace.h>
2

3
const uint32_t const a_my_exp10 [] PROGMEM =
4
{
5
1ul, // 10^0
6
10ul, // 10^1
7
100ul, // 10^2
8
1000ul, // 10^3
9
10000ul, // 10^4
10
100000ul, // 10^5
11
1000000ul, // 10^6
12
10000000ul, // 10^7
13
100000000ul, // 10^8
14
1000000000ul, // 10^9
15
};
16

17
uint32_t get_exp10(uint8_t n)
18
{
19
  if (n < 10)
20
    return (uint32_t)pgm_read_dword( & a_my_exp10[ n ] );
21
  else
22
    return 0;
23
}
Gast #3008122
Lesenswert?

Karl schrieb:
> Sven B. schrieb:
>> 10e3 ist vom Typ float, also Vorsicht. 1000 ist nicht gleich 10e3.
>
> 10³ = 1000. 10e3 = 1e4 = 10 * 1000 = 1 * 10000. Ich dachte soviel Mathe
> kann man hier voraussetzen. Aber ich werde es dem nächst
> berücksichtigen.

Selfowned^^
Persönliche Seite #3008151
Lesenswert?

Karl schrieb:
> Sven B. schrieb:
>> 10e3 ist vom Typ float, also Vorsicht. 1000 ist nicht gleich 10e3.
>
> 10³ = 1000. 10e3 = 1e4 = 10 * 1000 = 1 * 10000. Ich dachte soviel Mathe
> kann man hier voraussetzen. Aber ich werde es dem nächst
> berücksichtigen.

Er meinte das die beiden Zuweisungen
1
A = 1000;
2
B = 1E3;
nicht gleich sind. Und das sind sie auch nicht, da der Datentyp 
unterschiedlich ist.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren