int2hex
-
was meinst du mit umwandeln
int ist ein typ
hex ist die basis eines zahlensystems
-
moechte dez to hex umwandeln!
byee
-
sprintf ist mir da zu langsam... hm
bye
-
typedef int hex; hex int2hex (int i){ hex x = (hex)i; return x; }
-
was ich wollte ist nur ascii code;) dh integer_wert + 0x30
bye
-
hexe schrieb:
was ich wollte ist nur ascii code;) dh integer_wert + 0x30
bye
Du hast also einen String mit einer Dezimalzahl und willst einen String mit einer Hexadezimalzahl haben, richtig?
-
ich hab eine dezimalzahl und will den ascii string haben!
bye
-
hexe schrieb:
ich hab eine dezimalzahl und will den ascii string haben!
bye
Also ein "char[] dezimalzahl"?
-
Tim schrieb:
typedef int hex; hex int2hex (int i){ hex x = (hex)i; return x; }
-
... wer sonst nichts zu sagen hat ...
-
matze_ schrieb:
... wer sonst nichts zu sagen hat ...
Solltest du dir da nicht an die eigene Nase fassen?
-
int i,x,y = 0; // i = integer to hex char c[10]; while(i) { x = i & 0x0F; // Nibble freischneiden i >>= 4; // Nibble kürzen c[y] = x + 0x30; // Nibble to char y++; } y--; // Indexkorrektur for(x = y; x >= 0; x--) // rückwärts auslesen { // printf c[x] oder was auch immer }
Ohne Test und Garantie auf Richtigkeit oder für Eleganz. Immer den untersten Nibble absägen, char aufheben und danach die Reihenfolge umdrehen. Bugs bitte selbst entsorgen.
matze_ schrieb:
... wer sonst nichts zu sagen hat ...
Hauptsache, Tim konnte seinen "beliebten" und "hilfreichen" typedef- Kalauer wieder mal aufwärmen :p
-
#include <stdio.h> //... unsigned val = 255; char buff[10]; sprintf(buff, "%02x", val);
-
pointercrash() schrieb:
Hauptsache, Tim konnte seinen "beliebten" und "hilfreichen" typedef- Kalauer wieder mal aufwärmen :p
der ist ja von zeit zu zeit auch wirklich lustig
-
pointercrash() schrieb:
Hauptsache, Tim konnte seinen "beliebten" und "hilfreichen" typedef- Kalauer wieder mal aufwärmen :p
Warum nicht? Ich habe nichts gegen einen guten Witz, hin und wieder. Und er passt ja sogar hervorragend zum Thema!
Außerdem denke ich sowieso, dass hexe ein Troll ist. Erst weiß sie nicht, dass "hex" (kann eigentlich keiner mehr hexadezimal aussprechen?!) kein Typ ist und sie ihren numerischen Wert darstellen kann, wie sie will. Dann ist ihr sprintf zu langsam, was ja irgendwie auf mehr als eine Übungsanwendung schließen lassen würde. Letztlich will sie dann doch nur den int-Wert als String darstellen (also plötzlich keine Rede mehr von hex). Und hier weiß sie dann aber schon, dass sie den numerischen Wert plus 0x30 rechnen muss, um auf den ASCII-Code zu kommen, das hexadezimale System ist ihr also nicht fremd. Dazu ist jedes Posting schön schwammig und doppeldeutig formuliert...
-
_matze schrieb:
Warum nicht? Ich habe nichts gegen einen guten Witz, hin und wieder. Und er passt ja sogar hervorragend zum Thema!
Ne, besser ist er durch die Wiederholung auch nicht geworden.
_matze schrieb:
Außerdem denke ich sowieso, dass hexe ein Troll ist. ... Dann ist ihr sprintf zu langsam, Dazu ist jedes Posting schön schwammig und doppeldeutig formuliert...
Naja, Tatsache ist, daß sprintf mehr tut (Formatstringauswertung), als das, was man immer braucht. Und es wird heutzutage eindeutig zu sehr ohne Bedacht auf Performance programmiert. Stockende Blackberrys und humpelnde iPhones sind mithin die Folge. Der Performance- Doktor rät: Erstmal annehmen, Du hast nur `nen krüppeligen 8- Bitter.
Selbst, wenn jemand nur mitnimmt, daß es sich gelegentlich lohnt, über Laufzeitverhalten nachzudenken, war`s das schon wert, ob hexe nun trollt oder nicht.
-
pointercrash() schrieb:
Naja, Tatsache ist, daß sprintf mehr tut (Formatstringauswertung), als das, was man immer braucht. Und es wird heutzutage eindeutig zu sehr ohne Bedacht auf Performance programmiert. Stockende Blackberrys und humpelnde iPhones sind mithin die Folge. Der Performance- Doktor rät: Erstmal annehmen, Du hast nur `nen krüppeligen 8- Bitter.
Da hast du schon Recht, keine Frage. Ich wollte ja auch eher darauf hinaus, dass diese Aussage eher nicht auf ein kleines Übungsprogramm eines Anfängers hindeutet (wenn auch möglich), ihre Fragen aber in eine ganz andere Richtung gehen. Du hast mein Posting ja auch ziemlich zerstückelt zitiert...
-
_matze schrieb:
"hex" (kann eigentlich keiner mehr hexadezimal aussprechen?!)
Abgesehen davon, dass das zwei unterschiedliche Systeme sind. Hexa ist nämlich zur Basis sechs (wird aber eigentlich eher selten benutzt
) wohin gegen hexadezimal zur Basis 16 ist.
@pointercrash: Und wie sieht es bei dir mit A-F aus?
void toHexadecimal(int i, char *buf) { int a; for (a = 0; a < sizeof(int) * 2; ++a) { buf[a] = (i >> (4 * (sizeof(int) * 2 - 1 - a))) & 0xf; if (buf[a] < 10) buf[a] += '0'; else buf[a] += 'A' - 10; } buf[a] = 0; }
-
lagalopex schrieb:
Abgesehen davon, dass das zwei unterschiedliche Systeme sind. Hexa ist nämlich zur Basis sechs (wird aber eigentlich eher selten benutzt
) wohin gegen hexadezimal zur Basis 16 ist.
Na ja, mit "hex" meint man aber üblicherweise das Hexadezimal-System (Stichwort Hexeditor).
-
lagalopex schrieb:
void toHexadecimal(int i, char *buf) { int a; for (a = 0; a < sizeof(int) * 2; ++a) { buf[a] = (i >> (4 * (sizeof(int) * 2 - 1 - a))) & 0xf; if (buf[a] < 10) buf[a] += '0'; else buf[a] += 'A' - 10; } buf[a] = 0; }
^^viel zu kompliziert.