Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Decimal umwandeln in Hexadecimal

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
23.12.2003, 11:26 Uhr
~MaJu
Gast


Volgendes Problemm:

Ich möchte Decimal zahlen in Hexadezimal zahlen umwandeln. Das problemm ist das ich eine Zeichenkatte zurück geben muss, ich weis aber nicht wie ich denn rückgabe typ überladen kann! Oder soll ich das mit CString machen! Wenn ja, wie??
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
23.12.2003, 11:35 Uhr
derphilipder




Zitat:
~MaJu postete
Volgendes Problemm:

Das problemm ist das ich eine Zeichenkatte zurück geben muss, ich weis aber nicht wie ich denn rückgabe typ überladen kann!


Wer muss da was wohin zurückgeben - und warum?
Erklär mal ein wenig genauer, was Du vorhast!
--
Konfuzius says: "A man who goes to bed with an itchy asshole is a man who wakes up with stinky finger!"
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
23.12.2003, 11:50 Uhr
~MaJu
Gast


Ich möchte nict die standart umwandlungen nehmen.
Es soll nacher durch eine bestimmte code tabelle laufen, kann leider nicht mer veraten! Ich brauche jedenfalls als rückgabe eine Char* (zeichenkette);
Der text sieht volgender maßen aus:


C++:

char umwandeln::dtoh(double dec) {
    do {
        laenge++;
        tmp2=new int[laenge];
        hex=new char[laenge];
        do {
            for(tmp=1; tmp<=15; tmp++) {
                erg=tmp*exp; if(erg>dec) break;
            }
            if(erg<dec) exp*=16;
        } while(erg<dec);
        if(tmp==15) { dec-=1*(exp/16); tmp2[laenge]=1;
        } else { dec-=(tmp-1)*exp; tmp2[laenge]=tmp-1; }
        exp=1;
    } while(dec>0);
    for(tmp=1; tmp<=laenge; tmp++) {
            switch(tmp2[tmp]) {
            case 1:    hex[tmp]='1';    break;    case 9:        hex[tmp]='9';    break;
            case 2:    hex[tmp]='2';    break;    case 10:    hex[tmp]='A';    break;
            case 3:    hex[tmp]='3';    break;    case 11:    hex[tmp]='B';    break;
            case 4:    hex[tmp]='4';    break;    case 12:    hex[tmp]='C';    break;
            case 5:    hex[tmp]='5';    break;    case 13:    hex[tmp]='D';    break;
            case 6:    hex[tmp]='6';    break;    case 14:    hex[tmp]='E';    break;
            case 7:    hex[tmp]='7';    break;    case 15:    hex[tmp]='F';    break;
            case 8:    hex[tmp]='8';    break;    case 0:        hex[tmp]='0';    break;
            }
    }
    return hex;
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
23.12.2003, 12:17 Uhr
~MaJu
Gast


der quelltext gehört zu einer klasse, bitte nicht wundern.
Es soll dann in einer MFC steuerung ausgeführt werden!
Bitte helft mir s ist wirklich wirklich wichtig!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
23.12.2003, 12:44 Uhr
derphilipder



Was genau klappt denn in der Methode nicht?
--
Konfuzius says: "A man who goes to bed with an itchy asshole is a man who wakes up with stinky finger!"
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
23.12.2003, 12:47 Uhr
~MaJu
Gast


Ich hab es schom mi CString probiert in dem ich an return einfach _T(hex) geschrieben habe, was baer nict funktioniert. Ich bekomm da die irsinigsten zeichen, alles was nicht nach Hexadezimal aussieht, ich rätzle da jetzt schon seit ca 2,5 wochen dran rum, ich brauche dringen hilfe, ich muss das nämlich morgen abliefern, bzw heute abend noch! : :
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
23.12.2003, 13:09 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


möchtest du, wenn du z.b eine Zahl hast:


C++:
int iZahl = 40;



den zugehörigen Hexwert (also 0x28) oder von einer Zeichenkette:


C++:
char bla[] = "abcdef";



dann

0x61 0x62 0x63 0x64 0x65 0x66

????
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
23.12.2003, 13:23 Uhr
~MaJu
Gast


ich werd denn mist jetzt einfach fest mit 255 werten belegen, in der hofnung das er mir nur alles bis zur binärennull giebt und denn rest abschneidet!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
23.12.2003, 18:46 Uhr
0xdeadbeef
Gott
(Operator)



C++:
#include <stdio.h>

char *to_hex(int x, char *buf) {
  ssprintf(buf, "%x", x);
  return buf;
}

int main() {
  char hexstring[sizeof(int) * 2 + 1];
  int zahl = 123;
  puts(to_hex(zahl, hexstring));
}


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
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: