Montag, 26. September 2011

C - Dezimal Hexadezimal Wandler

Das Programm:
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!

3 Kommentare: