zahlenuwandler
-
hallo ich habe mit dem borland c++ builder einen zahlenumwandler programmiert welcher dez in dual, oktal und hexadezimal umwandelt, es funktioniert alles soweit nur wenn ich bei hexadezimalzahlen z.b. statt die zahl 11 den Buchstaben B anfügen will bekomme ich trotzdem im ergebnis die Zahl 11, hier der code:
void __fastcall TForm1::Button1Click(TObject *Sender) { Edit2->Clear(); int eingabe=StrToInt(Edit1->Text); int ergebnis; char rest; while (ergebnis!=0) { rest=eingabe%basis; ergebnis=(eingabe-rest)/basis; eingabe=ergebnis; switch (rest) { case '10': rest = 'A'; break; case '11': rest = 'B'; break; case '12': rest = 'C'; break; case '13': rest = 'D'; break; case '14': rest = 'E'; break; case '15': rest = 'F'; break; } Edit2->Text=IntToStr(rest) + Edit2->Text; } }bitte um hilfe und danke für alle tipps
-
rechnung is meiner meinung nach falsch.
-
mit dualzahlen und oktalzahlen funktioniert es, ist also denke ich richtig, nur statt zum beispiel bei hexadezimalzahlen 7A kommt 710 raus obwohl ich einen switch case block dazu programmiert habe der aber irgendqwie nicht funktioniert
-
dann solltest du einfach mal den Debugger verwenden
was ist '11'? zwei Zeichen? eine Zahl? ein String?
-
char rest;ersetzt das mal durch
int rest ; // ;)dann in den case anweisungen die ' ' ' gänsefüßchen um den zahlen weg
und noch einchar sonstewas; //für deine übergabe der buchstaben //... /*also*/ case 11: sonstewas = 'B';