int2hex
-
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.
-
lagalopex schrieb:
@pointercrash: Und wie sieht es bei dir mit A-F aus?
Kommt drauf an, unter ASCII zugegebenermaßen schlecht, der Displaycode von einem einfachen LCD paßt aber mit dem Offset genau. Das Beispiel war ja auch nur exemplarisch zur Darlegung des Prinzips. Wenn`s so stört, bitteschön:
int i,x,y = 0; // i = integer to hex char c[10]; while(i) { x = i & 0x0F; // Nibble freischneiden i >>= 4; // Nibble kürzen if (x<10] c[y] = x + 0x30; // Nibble to char '0' bis '9' else c[y] = x + 'A'; // Nibble to char 'A' bis 'F' // Edit: von 'K' bis 'P' , schäm' mich ja schon ;) y++; } y--; // Indexkorrektur for(x = y; x >= 0; x--) // rückwärts auslesen { // printf c[x] oder was auch immer }
Besser so, Seele beruhigt?
_matze schrieb:
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).
So, und wo wir schon alle beim Klugscheißen sind, korrekterweise heißt das Zahlensystem zur Basis 16 nämlich "Sedezimalsystem", auch wenn bei Hex jeder weiß, was gemeint ist.
-
Ahja... 0-9 und K-P? :p
Ich weiß zwar das wikipedia nicht das non-plus-ultra ist... aber zum flamen reichts noch:
http://de.wikipedia.org/wiki/Sedezimalsystem schrieb:
Alternative Bezeichnungen für hexadezimal (von griech. "hexa" und lat. "decem") sind hexadekadisch (Griechisch) und sedezimal (Latein) (Falsch hingegen ist der Begriff hexagesimal, der synonym zu sexagesimal ist und das Zahlensystem zur Basis 60 bezeichnet.).
-
lagalopex schrieb:
Ahja... 0-9 und K-P? :p
Autsch, erwischt
Mach 0x37 draus und breite den Mantel des Schweigens darüber
-
Tim schrieb:
typedef int hex; hex int2hex (int i){ hex x = (hex)i; return x; }
LOL