# [c]Dezimalzahlen in andere Zahlensysteme Umwandeln



## Bismark (9. Dezember 2010)

Hallo Leute,
ich muss für die Uni ein Programm programmieren, das die eingegebenen Dezimalzahlen auch Binär-, Oktal- und Hexadezimal form ausgeben soll.
Das programm soll unter OpenSuse 10.3 mit dem Editor 'Vi' mit dem gcc programmieren werden.
Soweit ich weiß, gibt es in C++ die Befehle 'hex' und 'okt', sprich


```
i = 25;
cout<<hex<<i;   //in Hexadezimal -form bzw.
cout<<okt<<i;   // in Oktal-form
```

mit den man die dezimal Zahlen in die jeweilige Zahl umwandeln kann.
Meine frage ist gibt es für die Programmiersprache C solche Befehle.


----------



## Matthias Reitinger (9. Dezember 2010)

Bismark hat gesagt.:


> Meine frage ist gibt es für die Programmiersprache C solche Befehle.




```
printf("Oktal: %o\n", i);
printf("Hexdezimal: %x\n", i);
```
Binär musst du dir wohl oder übel selber überlegen, da gibt es meines Wissens keinen Formatspezifizierer.

Grüße,
Matthias


----------



## Trulleberg (10. Dezember 2010)

Im C Standard gibt es für Binär nichts, du müsstest auf Compilerspezifisches ausweichen (z.B. itoa, _itoa) oder dir selbst anhand diverser o.g. Implementierungsvorschläge was basteln.


----------



## Bismark (11. Dezember 2010)

Hi,
Danke für die hilfe.
Hab gehört, dass man bei Oktalzahlen auch

```
printf("%hu", i)
```
Eingeben kann.

mit vielen Dank,
Bismark


----------



## Trulleberg (12. Dezember 2010)

Dein Beispiel hat nichts mit dem Oktalsystem zu tun. "Habe gehört dass" ist ganz schlecht, warum liest du nicht im Standard zu den Formatspezifizierern nach? Da steht alles aufgelistet und du würdest bemerken, dass "%h..." erst ab C99 gilt, d.h. du sie mit Microsoft-Compilern nicht verwenden kannst.


----------

