Eine über die Tastatur eingelesene natürliche Zahl ist einer Funktion zu übergeben,
die eine Umwandlung in den Hex-Code vornimmt.
/* Titel: Dezimal-Hex-Wandler Datei dezhex.cpp Autor: Jonathan Ernst Datum: 19.09.2011 Funktion: Eine über die Tastatur eingelesene natürliche Zahl ist einer Funktion zu übergeben, die eine Umwandlung in den Hex-Code vornimmt. */ #include#include #include #include #include //------------------------------------------------------------------------------------------- char result[100]; // Bestimmt eine Zeichenkette result mit 100 Speicherplätzen void dechex (int deci) // Funktion dechex { //bestimmen der Variablen: int zahl = 1; //definition Variable zahl int rest = 0; //definition Variable rest int counter = 0; //Definition Variable counter, zählet + int counterminus = 1; //definition Variable counterminus, zählt minus int x = 0; //definition Variable x int decim = deci; //definition variable decim = deci, übernimmt den Wert der dezimalzahl. strcpy(result," "); //setzt den String result = 0 while (zahl !=0) //Erste while schlaufe zur berechnung der Anzahl stellen welche die Hexzahl haben wird. { zahl = decim/16; //Berechnet: beispiel: dezimal Zahl 77 : 16 = 4, 4 wird in Variable Zahl gespeichert. rest = decim - (zahl*16);//berechnet den Restwert. : 77-(4*16)=77-64=13 decim = zahl; //die Zahl 13 währe die höchstwertige ziffer der hex-zahl counter++; //zählt die anzahl Zyklen } counterminus = counter; // counterminus wird mit counter gleichgesetzt, counterminus wird benützt um die Reihenfolge der hex-Ziffern zu bestimmen. zahl = 1; // setzt zahl wieder gleich 1 while (zahl !=0) //zweite Schleife, Jetzt werden die erhaltenen Werte in einem String (result) gespeichert. { zahl = deci/16; //Berechnet: beispiel: dezimal Zahl 77 : 16 = 4, 4 wird in Variable Zahl gespeichert. rest = deci - (zahl*16); //berechnet den Restwert. : 77-(4*16)=77-64=13 deci = zahl; //die Zahl 13 währe die höchstwertige ziffer der hex-zahl if (rest == 0) // wenn der rest = null wäre würde diese Ziffer angezeigt. { result[counterminus]='0'; } // beim ersten Durchgang hat Counterminus den höchsten wert, somit wird die Ziffer auf die Letzte stelle geschrieben. if (rest == 1) // wenn der rest = null wäre würde diese Ziffer angezeigt. { result[counterminus]='1'; } // beim zweiten durchgang wird die zweitletzte stelle beschrieben. if (rest == 2) // wenn der rest = null wäre würde diese Ziffer angezeigt. { result[counterminus]='2'; } //schreibt den Wert 2 in string Result an angegebener (counter minus) stelle if (rest == 3) // wenn der rest = null wäre würde diese Ziffer angezeigt. { result[counterminus]='3'; } //schreibt den Wert 3 in string Result an angegebener (counter minus) stelle if (rest == 4) // wenn der rest = null wäre würde diese Ziffer angezeigt. { result[counterminus]='4'; } //schreibt den Wert 4 in string Result an angegebener (counter minus) stelle if (rest == 5) // wenn der rest = null wäre würde diese Ziffer angezeigt. { result[counterminus]='5'; }//schreibt den Wert 5 in string Result an angegebener (counter minus) stelle if (rest == 6) // wenn der rest = null wäre würde diese Ziffer angezeigt. { result[counterminus]='6'; }//schreibt den Wert 6 in string Result an angegebener (counter minus) stelle if (rest == 7) // wenn der rest = null wäre würde diese Ziffer angezeigt. { result[counterminus]='7'; }//schreibt den Wert 7 in string Result an angegebener (counter minus) stelle if (rest == 8) // wenn der rest = null wäre würde diese Ziffer angezeigt. { result[counterminus]='8'; } //schreibt den Wert 8 in string Result an angegebener (counter minus) stelle if (rest == 9) // wenn der rest = null wäre würde diese Ziffer angezeigt. { result[counterminus]='9'; }//schreibt den Wert 9 in string Result an angegebener (counter minus) stelle if (rest == 10) // wenn der rest = null wäre würde diese Ziffer angezeigt. { result[counterminus]='A'; } //schreibt den Wert A in string Result an angegebener (counter minus) stelle if (rest == 11) // wenn der rest = null wäre würde diese Ziffer angezeigt. {result[counterminus]='B'; }//schreibt den Wert B in string Result an angegebener (counter minus) stelle if (rest == 12) // wenn der rest = null wäre würde diese Ziffer angezeigt. {result[counterminus]='C'; }//schreibt den Wert C in string Result an angegebener (counter minus) stelle if (rest == 13) // wenn der rest = null wäre würde diese Ziffer angezeigt. { result[counterminus]='D'; } //schreibt den Wert D in string Result an angegebener (counter minus) stelle if (rest == 14) // wenn der rest = null wäre würde diese Ziffer angezeigt. {result[counterminus]='E'; }//schreibt den Wert E in string Result an angegebener (counter minus) stelle if (rest == 15) // wenn der rest = null wäre würde diese Ziffer angezeigt. {result[counterminus]='F'; } //schreibt den Wert F in string Result an angegebener (counter minus) stelle counterminus--; // zählt runter. } printf("%s",result); //schreibt das Resultat!! in hex, string result } int main(void) //Aufruf { int dec = 0; //Deklaration Variable dec char exit = 'a'; while ( exit != 'n') { printf("\n Bitte geben Sie eine Dezimal Zahl ein: "); //Ausgabe Text scanf("%i",&dec); // Texteingabe printf("\n %i schreibt man in Hexadezimalsystem so: ", dec); //Ausgabe Text dechex(dec); //Funktionsaufruf hexdec printf("\nM\224chten sie eine andere Zahl umwandeln? j/n "); fflush(stdin); exit = getchar(); fflush(stdin); } //warte return 0; //ende }
Der Compilierte Code/ The compiled Code:
C - simple programs --------------------------------------------------------------------------------- Captain Malgardi Malgardis Crew become a fan on Facebook : Malgardi Fan!
http://c-simpleprogramms.blogspot.com/
AntwortenLöschenFunktioniert zwar ist aber sehr unschön...
AntwortenLöschenKennen Sie eine Bessere Lösung
AntwortenLöschen