Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Rätselecke » 53. Virtualrätsel

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
04.11.2003, 13:21 Uhr
virtual
Sexiest Bit alive
(Operator)


Okay, mal wieder ein Rästel:
Schreibe eine Routine, die einen String parst, der die heyadezimale Darstellung einer Zahl enthält.

C++:
int hex2int(const char*);

...
std::cout<<hex2int("21")<<std::endl;


soll also "33" ausgeben.
Dabei soll sich der eigene Vorschlag möglichst fundamental von den jeweils zuvorgeposteten Vorschlägen unterscheiden. Ich mal man den Anfang:

C++:
int hex2int(const char* s)
{
    int z;
    sscanf(s, "%x", &z);
    return z;
}


--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
04.11.2003, 13:26 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


und ich habe schon gedacht jetzt kommt was geiles wo ich mir wieder richtig das hirn verrenken kann. Schade...
Na gut dann der vollständigkeit halber meine Lösung aus dem Muffin-post


C++:
int hex2int(const char* s){
int rv=0;
for(int i=0;i<strlen(s);++i)
    rv+=(int)((toupper(s[ i ])-(isdigit(s[ i ])?48:55)) * pow(16,strlen(s)-1-i));
return rv;
}


--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
04.11.2003, 13:39 Uhr
0xdeadbeef
Gott
(Operator)



C++:
#include <sstream>
#include <string>
#include <iomanip>

int hex2int(std::string s) {
  int x;
  std::stringstream sin;

  sin.str(s);
  sin >> std::hex >> x;
  return x;  
}


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
04.11.2003, 14:31 Uhr
virtual
Sexiest Bit alive
(Operator)



C++:
int hex2int(const char* s)
{
     static const char* xdigits = "0123456789abcdef";
     int z = 0;
     const char* p;
      
     while (*s && NULL != (p=strchr(xidigits, tolower(*s++)))) z = z*16+p-xdigits;
     return z;
}


--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)

Dieser Post wurde am 04.11.2003 um 14:32 Uhr von virtual editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Rätselecke ]  


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: