M
Morf
Gast
Hi Leute,
ich möchte aus einer Hexadezimalen eine Dezimale Zahl machen. Ich dachte mir das könnte gehen, wenn man die Hexa-Zahl zuerst in ein Char-Array schreibt und dann jedes Char überprüft, ob es eine Zahl ist oder a,b,c,d,e,f. Die Buchstaben sollen dann in zahlen 10,11,12 usw. umgewandelt werden, sodass man nur noch Zahlen von 0 bis 15 hat.
Nun sollen diese Werte mal 16^(n-1) genommen werden, wobei n die Stelle des char in der Hexa-Zahl angibt. Jetzt addiert man die Zahlen noch und man hat die Dezimale Zahl.
Mein Problem ist nun, das ich schon bei der If-Anweisung scheitere. Ich habe festgestellt, dass dort das Problem liegt, kann es aber nicht beheben -.-.
Freue mich auf antworten.
ich möchte aus einer Hexadezimalen eine Dezimale Zahl machen. Ich dachte mir das könnte gehen, wenn man die Hexa-Zahl zuerst in ein Char-Array schreibt und dann jedes Char überprüft, ob es eine Zahl ist oder a,b,c,d,e,f. Die Buchstaben sollen dann in zahlen 10,11,12 usw. umgewandelt werden, sodass man nur noch Zahlen von 0 bis 15 hat.
Nun sollen diese Werte mal 16^(n-1) genommen werden, wobei n die Stelle des char in der Hexa-Zahl angibt. Jetzt addiert man die Zahlen noch und man hat die Dezimale Zahl.
Mein Problem ist nun, das ich schon bei der If-Anweisung scheitere. Ich habe festgestellt, dass dort das Problem liegt, kann es aber nicht beheben -.-.
Freue mich auf antworten.
Java:
import java.applet.*;
import java.awt.Button;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;
public class Main extends Applet implements ActionListener{
public String Eingabe;
public Button NewHexa;
public Integer Hexa_int,zwischen_int,x;
public char[] Hexachar;
public Integer[] Hexanumb;
public void init(){
NewHexa = new Button("Neue Hexadezimale Zahl");
NewHexa.addActionListener (this);
NewHexa.setActionCommand ("Action_1");
this.add(NewHexa);
}
public void actionPerformed (ActionEvent e)
{
Graphics g = getGraphics();
String which = (String) e.getActionCommand();
if ( which.equals("Action_1") )
{
Eingabe = JOptionPane.showInputDialog("Gib eine Hexadezimale Zahl ein, welche als Dezimale Zahl ausgegeben wird.");
Hexa_int = Eingabe.length();
Hexachar = Eingabe.toCharArray();
x=100;
while (Hexa_int > 0) {
Hexa_int = Hexa_int - 1;
if (Hexachar[Hexa_int]==(char)065)
Hexanumb[Hexa_int] = 10;
else if (Hexachar[Hexa_int]==066)
Hexanumb[Hexa_int] = 11;
else if (Hexachar[Hexa_int]==067)
Hexanumb[Hexa_int] = 12;
else if (Hexachar[Hexa_int]==68)
Hexanumb[Hexa_int] = 13;
else if (Hexachar[Hexa_int]==69)
Hexanumb[Hexa_int] = 14;
else if (Hexachar[Hexa_int]==70)
Hexanumb[Hexa_int] = 16;
else
Hexanumb[Hexa_int] = (int)Hexachar[Hexa_int];
String Dezi_str=String.valueOf(Hexanumb[Hexa_int]);
x=x+20;
g.drawString(Dezi_str,100,x);
}
}
}
}