Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » int als hexadezimalzahl in char umwandeln

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
21.11.2006, 20:24 Uhr
BoBtheREapER
kein job für nen BoB


ich habe versucht mir mal ne funktion zu schreiben die einen int in einen char umwandelt allerdings in der hexadezimal darstellung.

Code:
static char* itoch(int number)
{
  char* string = (char*) malloc(3);
  string[4] = '\0';
  int tnumber = number / 256;
  number = number - tnumber * 256;
  string[0] = tnumber + 48;
  tnumber = number / 16;
  number = number - tnumber * 16;
  if(tnumber<10)  string[1] = tnumber + 48;
  else  string[1] = tnumber + 97;
  if(number<10) string[2] = number + 48;
  else string[2] = number + 97;
}


als ergebniss bekomme ich bei zum beispiel 511: 1pp obwohl ich eigentlich 1ff bekommen müsste.
anmerkung: (ich brauche nur zahlen bis 511 deswegen enthällt das erste char nur 0 oder 1)
--
"Zwei Dinge sind unendlich: Das Universum und die menschliche Dummheit. Aber beim Universum bin ich mir nicht ganz sicher." - Albert Einstein
www.blue-xenon.de.vu
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
21.11.2006, 22:29 Uhr
Pablo
Supertux
(Operator)


Wie wäre es so?


C++:
char *itoch(int number)
    static char buffer[100];

    *buffer = 0;

    sprintf(buffer, "0x%x", number);

    return buffer;
}


--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
22.11.2006, 00:29 Uhr
Blubber2063



static Variablen in Funktionen sind doch evil. Das sind doch nix anderes als verkappte modul globale Variablen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
22.11.2006, 09:55 Uhr
stephanw
localhorst


Darf es auch C++ sein ?


C++:
  std::ostringstream os;
  // hex = hexadezimal, uppercase = Großbuchstaben, showbase = Präfix "0x"
  os << std::hex << std::uppercase << std::showbase << 255;
  std::cout << os.str() << std::endl;


--
Reden ist Schweigen und Silber ist Gold.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
22.11.2006, 14:48 Uhr
BoBtheREapER
kein job für nen BoB


danke schonmal so weit aber der string der am ende dabei rauskommt muss unbedinngt 3 stellen haben, weil ich den übers netzwerk verschicken will.
@stephanw: welchen header muss ich für ostringstrem includen?
@blubber2063: wenn ich das static weglasse bekomme ich die fehlermeldung: multiple definition of `itoch(int)'
--
"Zwei Dinge sind unendlich: Das Universum und die menschliche Dummheit. Aber beim Universum bin ich mir nicht ganz sicher." - Albert Einstein
www.blue-xenon.de.vu
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
22.11.2006, 14:49 Uhr
BoBtheREapER
kein job für nen BoB


achso ich habe in dem thread weiter oben das return vergessen
--
"Zwei Dinge sind unendlich: Das Universum und die menschliche Dummheit. Aber beim Universum bin ich mir nicht ganz sicher." - Albert Einstein
www.blue-xenon.de.vu
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
22.11.2006, 16:40 Uhr
0xdeadbeef
Gott
(Operator)



C++:
char *itoch(char *buf, size_t n, int x) {
  snprintf(buf, n, "%#x", x);
  return buf;
}


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
22.11.2006, 16:50 Uhr
stephanw
localhorst



Zitat:

@stephanw: welchen header muss ich für ostringstrem includen?




C++:
#include <sstream>

--
Reden ist Schweigen und Silber ist Gold.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: