printf
-
int a = 15; printf ("%d%d%d%d", a>>3&1, a>>2&1, a>>1&1, a&1);
-
warum geht es als Hex bsp.:printf("das Ergebnis ist:0x%02x\n",value);
binär muss es auch gehen
-
bin mir sicher dass es geht kann mich bloß nicht dran erinnern.
Grüße
-
Wieder mal das Helpfile (rtfm):
Synopsis:
#include <stdlib.h>
char *itoa( int value, char *buffer, int radix );
char *_itoa( int value, char *buffer, int radix );
wchar_t *_itow( int value, wchar_t *buffer,
int radix );Description:
The itoa function converts the binary integer value into the equivalent string in base radix notation storing the result in the character array pointed to by buffer. A null character is appended to the result. The size of buffer must be at least (8 * sizeof(int) + 1) bytes when converting values in base 2. That makes the size 17 bytes on 16-bit machines, and 33 bytes on 32-bit machines. The value of radix must satisfy the condition:
2 <= radix <= 36
If radix is 10 and value is negative, then a minus sign is prepended to the result.
The _itoa function is identical to itoa. Use _itoa for ANSI/ISO naming conventions.
The _itow function is identical to itoa except that it produces a wide-character string (which is twice as long).
-
myouness27 schrieb:
warum geht es als Hex bsp.:printf("das Ergebnis ist:0x%02x\n",value);
binär muss es auch gehenhexdarstellungen sind eben komfortabel, kompakt und werden häufiger benötigt. wenns um eine dualdarstellung geht musst du dir halt selbst was bauen, wobei ich fricky's möglichkeit in diesem fall präferieren würde. vielleicht ein eigenes printf derivat mit va_arg makros erstellen, und schon ist die welt wieder in ordnung
-
sothis_ schrieb:
myouness27 schrieb:
warum geht es als Hex bsp.:printf("das Ergebnis ist:0x%02x\n",value);
binär muss es auch gehenhexdarstellungen sind eben komfortabel, kompakt und werden häufiger benötigt. wenns um eine dualdarstellung geht musst du dir halt selbst was bauen, wobei ich fricky's möglichkeit in diesem fall präferieren würde. vielleicht ein eigenes printf derivat mit va_arg makros erstellen, und schon ist die welt wieder in ordnung
Wir können kein Englisch ?
Banaler wie ich das gepostet habe geht's nun wirklich nicht.
-
Scheppertreiber schrieb:
Wieder mal das Helpfile (rtfm):
Mach du lieber mal ein rtfm. itoa und co sind nämlich nicht Teil des ANSI/ISO C Standards. Daher ist eine Lösung wenig hilfreich.
-
Classification:
ANSI
Oder das Watcom Helpfile lügt ungehemmt ...
-
... und die Lösung von fricky ist total unflexibel ... also so wie ich's beschrieben habe, oder so wie es der gute sothis_ machen würde, aber das wird dir als Neuling wohl eher nicht gelingen.
Hier kannst du sehen, dass es nicht mit printf geht, so wie du dachtest/wolltest (btw. erster Treffer bei google.de): http://www.cplusplus.com/reference/clibrary/cstdio/printf.html
-
Scheppertreiber schrieb:
Classification:
ANSI
Oder das Watcom Helpfile lügt ungehemmt ...
Das ist ein Fehler in der Watcom Helpfile.
-
dust schrieb:
... und die Lösung von fricky ist total unflexibel ... also so wie ich's beschrieben habe, oder so wie es der gute sothis_ machen würde...
sothis_ schrieb:
...wobei ich fricky's möglichkeit in diesem fall präferieren würde.
-
rüdiger schrieb:
Scheppertreiber schrieb:
Classification:
ANSI
Oder das Watcom Helpfile lügt ungehemmt ...
Das ist ein Fehler in der Watcom Helpfile.
Ok, wenn ich den "Watcom" mal treffe sage ich's ihm
So ein "Rotzleffl", also nee ...Sollte jemand einen Compiler mit den Library-Quellen habe, sollte er sich die
Funktion atoi() ansehen. Die ist ziemlich einfach auf jedes Zahlensystem
einzustellen. Bei meinem Aztek-Compiler war das mal alles dabei, bei den
moderneren OS-Compilern (Gnu etc) ja auch. Keine Ahnung warum da kein Rüsseltier
mal reinsieht.
-
Scheppertreiber schrieb:
Sollte jemand einen Compiler mit den Library-Quellen habe, sollte er sich die
Funktion atoi() ansehen. Die ist ziemlich einfach auf jedes Zahlensystem
einzustellen.du meinst wohl itoa()
--> http://opengrok.creo.hu/openbsd/xref/src/gnu/usr.bin/groff/libgroff/itoa.c
mit einstellen ist da nix, lässt sich aber ziemlich einfach umbasteln.
-
@Scheppertreiber
atoi funktioniert in die andere Richtung. Aber da gibt es auch man: strtol(3) mit Support für verschiedene Basen.
-
rüdiger schrieb:
Aber da gibt es auch man: strtol(3) mit Support für verschiedene Basen.
das ist auch für die andere richtung.
-
Ok. Nimm die
Ich printf-e mir jetzt noch eine Halbe auf und binäre mir die Radix hinter
die imaginäre Binde. Ich schlage mich jetzt schon den ganzen Tag mit veraltetem
Tabellenlayout herum was ich vor 2 Jahren mal selbst verbrochen habe, da kommt
man mal durcheinander ...
-
fricky schrieb:
rüdiger schrieb:
Aber da gibt es auch man: strtol(3) mit Support für verschiedene Basen.
das ist auch für die andere richtung.
Ich habe auch nichts anderes behauptet.