Convert Dezimal to Hexerdezimal

03/26/2011 21:03 NikM#1
I möchte euch hier zeigen wie man Dezimalzahlen mit C++ zu Hexerdezimalzahlen wandelt.


Zuerst benötigen wir 4 Variablen (einen Array).
Danach muss eine Ganzzahl eingegeben werden.
Code:
int iDezimal = 0;
int iRest;
int i_a_ToHex [100];
int i = 0;

cout << "Enter a Number: ";
cin >> iDezimal;
Jetzt brauchen wir eine Schleife. In der Schleife wird die Dezimalzahl durch 16 geteilt.
Zur Erinnerung: Hexerdezimal (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F) besteht aus 16 Zeichen deshalb durch 16.
Außerdem wird der Rest berechnet der übrig bleibt. Dieser wird in dem Array abgespeichert.
Die Schleife läuft solange wie die Dezimal nicht 0 ist.
Code:
do
{
	iRest = 0;
	iRest = iDezimal%16;
	i_a_ToHex[i] = iRest;
	iDezimal = iDezimal / 16;
	i++;
}while (iDezimal != 0);
Danch benötigen wir eine weitere Schleife.
In dieser werden alle Werte die in dem Array abgepeichet wurden aufgerufen.
Wenn ein Wert zwischen 10 und 15 liegt wird A,B,C,D,E oder F ausgegeben.
Sonst wird der Wert augegeben.
Und schon haben wir die Dezimalzahl zu einer Hexerdezimalzahl gemacht.
Code:
for (int j = i-1; j != -1; j--)
{
	if (i_a_ToHex[j] == 10)
		cout << "A";

	else if (i_a_ToHex[j] == 11)
		cout << "B";

	else if (i_a_ToHex[j] == 12)
		cout << "C";

	else if (i_a_ToHex[j] == 13)
		cout << "D";

	else if (i_a_ToHex[j] == 14)
		cout << "E";

	else if (i_a_ToHex[j] == 15)
		cout << "F";

	else 
		cout << i_a_ToHex[j];
}
Enjoy

Credits: NikM
03/27/2011 12:00 Jay Niize#2
It's only a Code-Snippet. Can you explain that Code also? And if it is not yours, please give the source to.

MFG Jusikid
03/27/2011 12:23 NikM#3
hab erklärungen zu dem code geschrieben
03/27/2011 18:47 ●ROBBY●#4
Warum so umständlich?

PHP Code:
cout << hex << var << endl
03/27/2011 21:40 MrSm!th#5
Außerdem wird dabei nicht die Zahl umgewandelt, sondern die Zeichenkette, die sie räpresentiert.

Eine Zahl ist eine Zahl, da gibt es keine verschiedenen Konvertierungen, die sind alle binär abgespeichert.
Du wandelst die Zahl, die in Dezimalschreibweise angegeben wird, in eine Zeichenkette um, die die selbe Zahl in Hexadezimalschreibweise repräsentiert.
03/28/2011 13:43 NikM#6
aber ich habe nachher die zahl in hex schreibweise :D
@●ROBBY●
wusste ich nich :D
03/28/2011 20:44 MoepMeep#7
\x ?