Hexadezimal Zahlen addieren

Status
Nicht offen für weitere Antworten.

venomlol

Mitglied
hi ho

ich hab ein problem und zwar habe ich mir einen taschenrechner prgorammiert und will jetzt die fukntion hinzufügen das man hexadezimal zahlen addieren kann . die umrechnung von hexa zu dezimal funktioniert nur das addieren will iwi nicht :/ .
vllt kann mir ja jemand helfen .

hier is mal der Quellcode:
Java:
/**
 * @(#)taschenrechner.java
 *
 * taschenrechner application
 *
 * @author 
 * @version 1.00 2009/8/4
 */
 
//Taschenrechner
import java.awt.*;
import java.awt.event.*;
import java.lang.*;
import java.util.Scanner;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class taschenrechner extends Frame

{
JButton A,B,C,D,E,F,Dez,Hexa,Beenden,Info,Taste_0,Taste_1,Taste_2, Taste_3,Taste_4,Taste_5 , Taste_6, Taste_7, Taste_8,Taste_9,
Taste_d, Taste_c, Taste_m,Taste_p, Taste_w, Taste_g; 
double Speicher =0; 
double Zwischenwert =0; 
boolean Operand = false; 
char akt_Operation ='k'; 
boolean neue_Zahl = true; 
boolean Vorkomma = true; 
boolean hexazahl = true ;
String hexhex ;
JTextField Anz; 
double Operand1, Operand2;

class Mein_WindowListener extends WindowAdapter 
{
public void windowClosing (WindowEvent e) 
{ 
System.exit(0); 
}

}


taschenrechner(String titel)
{
super(titel);
JFrame f = new JFrame( "Taschenrechner" );     
f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );        
f.setSize(200,300) ;    
f.setLayout(new GridLayout(2,5));




//Panel erstellen	

JPanel P1 = new JPanel();
P1.setLayout( new GridLayout(2,4));
f.add (P1);

JPanel P2 = new JPanel();
P2.setLayout( new GridLayout(5,4));
          	
          
JPanel P3 = new JPanel();
P3.setLayout( new GridLayout(0,1,1,1));
    
JPanel P4 = new JPanel();
P4.setLayout( new GridLayout(0,3,10,4));
f.add (P4);
    

P1.add (P3);
P1.add (P4);
f.add( P2);


Anz = new JTextField(10); // 10 Zeichen breit
Anz.setEditable (false); //nicht editierbar
Anz.setText("0.0");




Beenden=new JButton ("");
Beenden.setIcon(new ImageIcon ("exit.png"));
Taste_0 = new JButton("0");
Taste_1 = new JButton("1");
Taste_2 = new JButton("2");
Taste_3 = new JButton("3");
Taste_4 = new JButton("4");
Taste_5 = new JButton("5");
Taste_6 = new JButton("6");
Taste_7 = new JButton("7");
Taste_8 = new JButton("8");
Taste_9 = new JButton("9");
Taste_d = new JButton("/");
Taste_c = new JButton("clr");
Taste_m = new JButton("*");
Taste_p = new JButton("+");
Taste_w = new JButton("-");
Taste_g = new JButton("=");
Info    = new JButton("=");
Hexa    = new JButton("Hex");
Dez		= new JButton("Dez");
A		= new JButton("A");
B		= new JButton("B");
C		= new JButton("C");
D		= new JButton("D");
E		= new JButton("E");
F		= new JButton("F");

JOptionPane.showMessageDialog(null, "© Gyula Fügedi 2009", "Copyright Taschenrechner®", JOptionPane.INFORMATION_MESSAGE);

		

P3.add(Anz); 



P4.add(Taste_w);
P4.add(Taste_c);
P2.add(Taste_1);
P2.add(Taste_2);
P2.add(Taste_3);
P2.add(Taste_4);
P2.add(Taste_5);
P2.add(Taste_6);
P2.add(Taste_7);
P2.add(Taste_8);
P2.add(Taste_9);
P2.add(Taste_0);
P4.add(Taste_d);
P4.add(Taste_m);
P4.add(Taste_p);
P4.add(Taste_g);
P4.add(Dez);
P4.add(Hexa);
P2.add(A);
P2.add(B);
P2.add(C);
P2.add(D);
P2.add(E);
P2.add(F);
P4.add(new JLabel(""));



f.setVisible(true);
addWindowListener(new Mein_WindowListener());


Taste_0.addActionListener(new drücken());
Taste_1.addActionListener(new drücken());
Taste_2.addActionListener(new drücken());
Taste_3.addActionListener(new drücken());
Taste_4.addActionListener(new drücken());
Taste_5.addActionListener(new drücken());
Taste_6.addActionListener(new drücken());
Taste_7.addActionListener(new drücken());
Taste_8.addActionListener(new drücken());
Taste_9.addActionListener(new drücken());
Taste_d.addActionListener(new drücken());
Taste_c.addActionListener(new drücken());
Taste_m.addActionListener(new drücken());
Taste_p.addActionListener(new drücken());
Taste_w.addActionListener(new drücken());
Taste_g.addActionListener(new drücken());
Beenden.addActionListener(new drücken());
Hexa.addActionListener(new Umrechnen());
Dez.addActionListener(new Rückrechnen());
A.addActionListener(new drücken());
B.addActionListener(new drücken());
C.addActionListener(new drücken());
D.addActionListener(new drücken());
E.addActionListener(new drücken());
F.addActionListener(new drücken());
}

public class Rückrechnen implements ActionListener
{

public void actionPerformed(ActionEvent o)
{ 
	String hexString="ff";
	hexString= Anz.getText();
	int i = Integer.valueOf(hexString, 16).intValue();
	Anz.setText(Integer.toString(i));
	hexazahl= true ;
	
}

}
class Umrechnen implements ActionListener
{

public void actionPerformed(ActionEvent o)
{ 
	int zahl = 0;
    String hexazahl ="";
 
    zahl = Integer.valueOf(Anz.getText()).intValue();
	do { 
	    if ((zahl%16)< 10) { hexazahl = zahl%16 + hexazahl; }
	    if ((zahl%16)==10) { hexazahl = "A" + hexazahl; } 
	    if ((zahl%16)==11) { hexazahl = "B" + hexazahl; } 
	    if ((zahl%16)==12) { hexazahl = "C" + hexazahl; } 
	    if ((zahl%16)==13) { hexazahl = "D" + hexazahl; } 
	    if ((zahl%16)==14) { hexazahl = "E" + hexazahl; } 
	    if ((zahl%16)==15) { hexazahl = "F" + hexazahl; }
	    zahl = zahl/16; 
	} while (zahl > 0); 
	
    Anz.setText(hexazahl);  

}
	
}

class drücken implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String str, akt_Text;
int index;
char Zeichen;
double Wert;


str = e.getActionCommand();

Zeichen = str.charAt(0);

switch(Zeichen)
{



case 'c' : 
Anz.setText("0.0");
Speicher =0;
Zwischenwert =0;
akt_Operation ='k';
Operand = false;
Vorkomma = true;
neue_Zahl = true;
break;


case '+':
case '-':
case '*':
case '/':
case '%':
if(akt_Operation =='k'){ 
Zwischenwert = Double.valueOf(Anz.getText()).doubleValue();
Operand=true;
akt_Operation=Zeichen;
neue_Zahl=true;
break;
}

if(Operand == true){
Berechnung_ausführen();
neue_Zahl=true;
Vorkomma=true;
akt_Operation=Zeichen;
break;
}

case '=':
if(akt_Operation!='k' && Operand==true){
	{
		Operand1=Double.valueOf(Zwischenwert).doubleValue(); ;
		Operand2=Double.valueOf(Anz.getText()).doubleValue();
	}


Berechnung_ausführen();
neue_Zahl=true;
Vorkomma=true;
akt_Operation=Zeichen='k';
Operand=false;
break;
}
case '.':
if(neue_Zahl == true){

Anz.setText("0");
neue_Zahl=false;
}
if(Vorkomma==true){
Vorkomma=false;
akt_Text=Anz.getText();
akt_Text += ".";
Anz.setText(akt_Text);
}
break;

default: 

if(neue_Zahl==true)
{
neue_Zahl=false;
Anz.setText("");
}

akt_Text=Anz.getText();
Anz.setText("");


Anz.setText(akt_Text + Zeichen);
break;
}

}
}
void Berechnung_ausführen()
{
double Operand1, Operand2;
double Ergebnis = 0;

Operand1=Zwischenwert;
Operand2=Double.valueOf(Anz.getText()).doubleValue();
int zahl;

switch(akt_Operation)
{

case '+': Rückrechnen(hexhex); Anz.setText("");
		Ergebnis = Operand1 + Operand2;
if (hexazahl = true ){

	
}
break;

case '-': Ergebnis = Operand1 - Operand2;
break;

case '*': Ergebnis = Operand1 * Operand2;
break;

case '%': Ergebnis = Operand1 % Operand2;

case '/': if(Operand2!=0)
Ergebnis = Operand1 / Operand2;

else
Ergebnis = 0;
break;

}


Zwischenwert = Ergebnis;
Anz.setText(Double.toString(Ergebnis));
}



private int Rückrechnen(String hexazahl) {
	// TODO Auto-generated method stub
	String hexString="ff";
	hexString= Anz.getText();
	int i = Integer.valueOf(hexString, 16).intValue();
	Anz.setText(Integer.toString(i));
	return(i);
}



public static void main(String args[])
{
taschenrechner Fenster = new taschenrechner("Taschenrechner");
}}

lg Venomlol
 

faetzminator

Gesperrter Benutzer
Wie wärs, wenn du die Zahlen intern in Dezimalzahlen umrechnest (btw, das können bereits die Klassen der Java SE) und mit diesen rechnest?
 

venomlol

Mitglied
huhu

also auf die idee kam ich ja auch schon *-* , aber ich soll ich das in der case anweisug für jede operation tun ? ( wie is der interne befehl dafür ?? ) .
 

Ein Keks

Bekanntes Mitglied
kleine anmerkung:
Klassennamen werden groß und variablennamen klein geschrieben.
Desweiteren wieso verwendest du eigentlich keine arrays? wenigstens für die normalen zahlen-tasten wäre das doch sehr sinnvoll schon allein weil du dann mit schleifen arbeiten könntest, was die code länge deutlich verkürzen würde ( und das ganze vorallem übersichtlicher macht).
 

venomlol

Mitglied
huhu nochmal , ich saß jetzt den ganzen sonntag dran aba ich kriegs nich hin .. ich stell mich wohl doch zu dumm .... aba ersma danke für die hilfestellungen :) .

lg
 

icarus2

Top Contributor
Du müsstest dann schon sagen was genau nicht geht. Oder etwas Code posten wo du denkst, dass etwas nicht funktioniert.

Sonst können wir dir nicht helfen ;-)
 

venomlol

Mitglied
Java:
/**
 * @(#)taschenrechner.java
 *
 * taschenrechner application
 *
 * @author 
 * @version 1.00 2009/8/4
 */
 
//Taschenrechner
import java.awt.*;
import java.awt.event.*;
import java.lang.*;
import java.util.Scanner;

import javax.swing.ButtonGroup;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.JTextField;
import javax.swing.KeyStroke;
import java.lang.Math;

public class taschenrechner extends Frame

{
JButton Taste_wechsel,PI,sin,cos,tan,log,h3,h,quadrat,Wurzel,A,B,C,D,E,F,Dez,Hexa,Beenden,Info,Taste_0,Taste_1,Taste_2, Taste_3,Taste_4,Taste_5 , Taste_6, Taste_7, Taste_8,Taste_9,
Taste_d, Taste_c, Taste_m,Taste_p, Taste_w, Taste_g; 
double Speicher =0; 
double Zwischenwert =0; 
boolean Operand = false; 
char akt_Operation ='k'; 
boolean neue_Zahl = true; 
boolean Vorkomma = true; 
boolean hexazahl = true ;
String hexhex ;
JTextField Anz; 
double Operand1, Operand2;
JMenuBar menuBar;
JMenu menu, submenu;
JMenuItem menuItem;
JRadioButtonMenuItem rbMenuItem1,rbMenuItem2;
String op1,op2;
int durchlaufen;

class Mein_WindowListener extends WindowAdapter 
{
public void windowClosing (WindowEvent e) 
{ 
System.exit(0); 
}

}


taschenrechner(String titel)
{
super(titel);
JFrame f = new JFrame( "Taschenrechner" );     
f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );        
f.setSize(200,400) ;    
f.setLayout(new GridLayout(2,5));




//Panel erstellen	

JPanel P1 = new JPanel();
P1.setLayout( new GridLayout(2,4));
f.add (P1);

JPanel P2 = new JPanel();
P2.setLayout( new GridLayout(10,4));
          	
          
JPanel P3 = new JPanel();
P3.setLayout( new GridLayout(0,1,1,1));
    
JPanel P4 = new JPanel();
P4.setLayout( new GridLayout(0,3,10,4));
f.add (P4);

JPanel P5 = new JPanel ();
P5.setLayout(new GridLayout(1,1));
    

P1.add (P3);
P1.add (P4);
P2.add(P5);
f.add( P2);


Anz = new JTextField(10); // 10 Zeichen breit
Anz.setEditable (false); //nicht editierbar
Anz.setText("0.0");
menuBar = new JMenuBar();
menu = new JMenu("Taschenrechnerart Wählen");
menu.setMnemonic(KeyEvent.VK_A);
menu.getAccessibleContext().setAccessibleDescription(
        "The only menu in this program that has menu items");
menuBar.add(menu);


P3.add(menuBar);

menu.addSeparator();
ButtonGroup group = new ButtonGroup();
rbMenuItem1 = new JRadioButtonMenuItem("Standart");
rbMenuItem1.setSelected(true);
rbMenuItem1.setMnemonic(KeyEvent.VK_R);
group.add(rbMenuItem1);
menu.add(rbMenuItem1);

rbMenuItem2 = new JRadioButtonMenuItem("Wissenschaftlich");
rbMenuItem2.setMnemonic(KeyEvent.VK_O);
group.add(rbMenuItem2);
menu.add(rbMenuItem2);



Beenden=new JButton ("");
Beenden.setIcon(new ImageIcon ("exit.png"));

PI = new JButton("Pi");
sin = new JButton("sin");
cos = new JButton("cos");
tan = new JButton("tan");
log = new JButton("log");
h3 = new JButton ( "x³") ;
h = new JButton ("h");
h.setIcon(new ImageIcon( "variable.png"));
Taste_0 = new JButton("0");
Taste_1 = new JButton("1");
Taste_2 = new JButton("2");
Taste_3 = new JButton("3");
Taste_4 = new JButton("4");
Taste_5 = new JButton("5");
Taste_6 = new JButton("6");
Taste_7 = new JButton("7");
Taste_8 = new JButton("8");
Taste_9 = new JButton("9");
Taste_d = new JButton("/");
Taste_c = new JButton("clr");
Taste_m = new JButton("*");
Taste_p = new JButton("+");
Taste_w = new JButton("-");
Taste_g = new JButton("=");
Info    = new JButton("=");
Hexa    = new JButton("x");
Dez		= new JButton("Dez");
A		= new JButton("A");
B		= new JButton("B");
C		= new JButton("C");
D		= new JButton("D");
E		= new JButton("E");
F		= new JButton("F");
Taste_wechsel = new JButton("+/-");

JOptionPane.showMessageDialog(null, "© Gyula Fügedi 2009", "Copyright Taschenrechner®", JOptionPane.INFORMATION_MESSAGE);

		

P3.add(Anz); 



P4.add(Taste_w);
P4.add(Taste_c);
P2.add(Taste_1);
P2.add(Taste_2);
P2.add(Taste_3);
P2.add(Taste_4);
P2.add(Taste_5);
P2.add(Taste_6);
P2.add(Taste_7);
P2.add(Taste_8);
P2.add(Taste_9);
P2.add(Taste_0);
P4.add(Taste_d);
P4.add(Taste_m);
P4.add(Taste_p);
P4.add(Taste_g);
P2.add(new JLabel(""));
P2.add(A);
P2.add(B);
P2.add(C);
P2.add(D);
P2.add(E);
P2.add(F);
P4.add(new JLabel(""));
P2.add(new JLabel(""));
P2.add(Dez);
P2.add(Hexa);
P2.add(PI);
P2.add(sin);
P2.add(cos);
P2.add(tan);
P2.add(log);
P2.add(h3);
P2.add(h);
P2.add(Taste_wechsel);
A.setEnabled(false);
B.setEnabled(false);
C.setEnabled(false);
D.setEnabled(false);
E.setEnabled(false);
F.setEnabled(false);
Hexa.setEnabled(false);
Dez.setEnabled(false);	
PI.setEnabled(false);
sin.setEnabled(false);
cos.setEnabled(false);
tan.setEnabled(false);
log.setEnabled(false);
h3.setEnabled(false);
h.setEnabled(false);



f.setVisible(true);
addWindowListener(new Mein_WindowListener());


Taste_0.addActionListener(new drücken());
Taste_1.addActionListener(new drücken());
Taste_2.addActionListener(new drücken());
Taste_3.addActionListener(new drücken());
Taste_4.addActionListener(new drücken());
Taste_5.addActionListener(new drücken());
Taste_6.addActionListener(new drücken());
Taste_7.addActionListener(new drücken());
Taste_8.addActionListener(new drücken());
Taste_9.addActionListener(new drücken());
Taste_d.addActionListener(new drücken());
Taste_c.addActionListener(new drücken());
Taste_m.addActionListener(new drücken());
Taste_p.addActionListener(new drücken());
Taste_w.addActionListener(new drücken());
Taste_g.addActionListener(new drücken());
Beenden.addActionListener(new drücken());
Hexa.addActionListener(new Umrechnen());
Dez.addActionListener(new Rückrechnen());
A.addActionListener(new drücken());
B.addActionListener(new drücken());
C.addActionListener(new drücken());
D.addActionListener(new drücken());
E.addActionListener(new drücken());
F.addActionListener(new drücken());
rbMenuItem1.addActionListener(new auswahl());
rbMenuItem2.addActionListener(new auswahl1());
PI.addActionListener(new pibere());
sin.addActionListener(new sinbere());
cos.addActionListener(new cosbere());
tan.addActionListener(new tanbere());
log.addActionListener(new logbere());
h3.addActionListener(new h3bere());
h.addActionListener(new drücken());
Taste_wechsel.addActionListener(new drücken());
}

public class logbere implements ActionListener {

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
	
	
	double zahl = Integer.valueOf(Anz.getText()).intValue();
double zahl2 = Math.log(zahl);
String s = String.valueOf(zahl2);
Anz.setText(s);
	}
}

public class cosbere implements ActionListener {

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		double zahl = Integer.valueOf(Anz.getText()).intValue();
		double zahl2 = Math.cos(zahl);
		String s = String.valueOf(zahl2);
		Anz.setText(s);
	}

}


public class hvbere implements ActionListener {

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		Zwischenwert = Integer.valueOf(Anz.getText()).intValue();
		Anz.setText("");
		akt_Operation='h';
	}

}


public class h3bere implements ActionListener {

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		double zahl = Integer.valueOf(Anz.getText()).intValue();
		double zahl2 = Math.pow(zahl,3);
		String s = String.valueOf(zahl2);
		Anz.setText(s);
	}

}


public class tanbere implements ActionListener {

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		double zahl = Integer.valueOf(Anz.getText()).intValue();
		double zahl2 = Math.tan(zahl);
		String s = String.valueOf(zahl2);
		Anz.setText(s);
	}

}


public class sinbere implements ActionListener {

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		double zahl = Integer.valueOf(Anz.getText()).intValue();
		double zahl2 = Math.sin(zahl);
		String s = String.valueOf(zahl2);
		Anz.setText(s);
	}

}



public class pibere implements ActionListener {

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		Anz.setText("3.141592653589793238");
	}


}

public class auswahl1 implements ActionListener {
	public void actionPerformed(ActionEvent o)
	{
		A.setEnabled(true);
		B.setEnabled(true);
		C.setEnabled(true);
		D.setEnabled(true);
		E.setEnabled(true);
		F.setEnabled(true);
		Hexa.setEnabled(true);
		Dez.setEnabled(true);	
		PI.setEnabled(true);
		sin.setEnabled(true);
		cos.setEnabled(true);
		tan.setEnabled(true);
		log.setEnabled(true);
		h3.setEnabled(true);
		h.setEnabled(true);
	}
}


public class auswahl implements ActionListener {
	public void actionPerformed(ActionEvent o)
	{
		A.setEnabled(false);
		B.setEnabled(false);
		C.setEnabled(false);
		D.setEnabled(false);
		E.setEnabled(false);
		F.setEnabled(false);
		Hexa.setEnabled(false);
		Dez.setEnabled(false);	
		PI.setEnabled(false);
		sin.setEnabled(false);
		cos.setEnabled(false);
		tan.setEnabled(false);
		log.setEnabled(false);
		h3.setEnabled(false);
		h.setEnabled(false);
	}
}


public class Rückrechnen implements ActionListener
{

public void actionPerformed(ActionEvent o)
{ 
	String hexString="ff";
	hexString= Anz.getText();
	int i = Integer.valueOf(hexString, 16).intValue();
	Anz.setText(Integer.toString(i));
	hexazahl= true ;
	
}

}
class Umrechnen implements ActionListener
{

public void actionPerformed(ActionEvent o)
{ 
	int zahl = 0;
    String hexazahl ="";

    zahl = Integer.valueOf(Anz.getText()).intValue();
	do { 
	    if ((zahl%16)< 10) { hexazahl = zahl%16 + hexazahl; }
	    if ((zahl%16)==10) { hexazahl = "A" + hexazahl; } 
	    if ((zahl%16)==11) { hexazahl = "B" + hexazahl; } 
	    if ((zahl%16)==12) { hexazahl = "C" + hexazahl; } 
	    if ((zahl%16)==13) { hexazahl = "D" + hexazahl; } 
	    if ((zahl%16)==14) { hexazahl = "E" + hexazahl; } 
	    if ((zahl%16)==15) { hexazahl = "F" + hexazahl; }
	    zahl = zahl/16; 
	} while (zahl > 0); 
	akt_Operation = 'x';
    Anz.setText(hexazahl);  
    Anz.setText("");

}
	
}

class drücken implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
String str, akt_Text;
int index;
char Zeichen;
double Wert;


str = e.getActionCommand();

Zeichen = str.charAt(0);


if(str.equals("+/-"))
{
//Vorzeichen wechseln

Wert=Double.valueOf(Anz.getText()).doubleValue();
Wert*=-1;
Anz.setText(Double.toString(Wert));
return;
}
switch(Zeichen)


{



case 'c' : 
Anz.setText("0.0");
Speicher =0;
Zwischenwert =0;
akt_Operation ='k';
Operand = false;
Vorkomma = true;
neue_Zahl = true;
break;


case '+':
case '-':
case '*':
case '/':
case '%':
case 'h':
case 'x':
if(akt_Operation =='k'){ 
Zwischenwert = Double.valueOf(Anz.getText()).doubleValue();
Operand=true;
akt_Operation=Zeichen;
neue_Zahl=true;
break;
}

if(Operand == true){
Berechnung_ausführen();
neue_Zahl=true;
Vorkomma=true;
akt_Operation=Zeichen;
break;
}

case '=':
if(akt_Operation!='k' && Operand==true){
	{
		Operand1=Double.valueOf(Zwischenwert).doubleValue(); ;
		Operand2=Double.valueOf(Anz.getText()).doubleValue();
	}


Berechnung_ausführen();
neue_Zahl=true;
Vorkomma=true;
akt_Operation=Zeichen='k';
Operand=false;
break;
}


case '.':
if(neue_Zahl == true){

Anz.setText("0");
neue_Zahl=false;
}
if(Vorkomma==true){
Vorkomma=false;
akt_Text=Anz.getText();
akt_Text += ".";
Anz.setText(akt_Text);
}
break;

default: 

if(neue_Zahl==true)
{
neue_Zahl=false;
Anz.setText("");
}

akt_Text=Anz.getText();
Anz.setText("");


Anz.setText(akt_Text + Zeichen);
break;
}

}
}
void Berechnung_ausführen()
{
double Operand1, Operand2;
double Ergebnis = 0;
if (akt_Operation=='x'){
	 Operand1= Zwischenwert ;
	 op1= Double.toHexString(Operand1) ;
	 Operand2=Double.valueOf(Anz.getText()).doubleValue();
	 op2= Double.toHexString(Operand2);
}
Operand1=Zwischenwert;
Operand2=Double.valueOf(Anz.getText()).doubleValue();
String oop1=op1;
String oop2=op2;

int zahl=0;
double zahl2 = (Operand2);
switch(akt_Operation)
{

case 'x':Rückrechnen(0, zahl2);
if (akt_Operation=='+'){
	Ergebnis= zahl+zahl2;
}


case '+': Ergebnis = Operand1 + Operand2;	
break;

case 'h': Ergebnis = Math.pow(Operand1,Operand2);
break;

case '-': Ergebnis = Operand1 - Operand2;
break;

case '*': Ergebnis = Operand1 * Operand2;
break;


case '%': Ergebnis = Operand1 % Operand2;

case '/': if(Operand2!=0)
Ergebnis = Operand1 / Operand2;

else
Ergebnis = 0;
break;

}


Zwischenwert = Ergebnis;
Anz.setText(Double.toString(Ergebnis));
}



private int Rückrechnen(int zahl,double zahl2) {
	// TODO Auto-generated method stub
	durchlaufen=durchlaufen+1;
	if (durchlaufen>1);
	String hexString="ff";
	hexString= Anz.getText();
	int i = Integer.valueOf(hexString, 16).intValue();
	if (durchlaufen>1){
	zahl2= i ;
	}else 
		zahl=i;
	//Anz.setText(Integer.toString(i));
	return(i);
}



public static void main(String args[])
{
taschenrechner Fenster = new taschenrechner("Taschenrechner");
}}

also es addiert einfach nicht die hexadezimal zahlen ich weis nicht wie ich das bewerkstelligen soll das er die addiert :( .
 

ARadauer

Top Contributor
ich habe da mal vor Kurzem ein kleines Testprogramm geschrieben, das Zahlensystem konvertiert.
von einem Zahlesystem nach Dezimal und umgekehrt...


Java:
public class AlienNumbers {

   public static void main(String[] args) throws IOException {
     System.out.println(convert("101", "01", "0123456789"));
     System.out.println(convert("15", "0123456789", "0123456789ABCDEF"));
     System.out.println(convert("215", "0123456789", "0123456789ABCDEF"));
     System.out.println(convert("1112", "0123456789", "BierSaufen;-)"));
   }

   public static String convert(String value, String sourceLang, String targetLang){
      int dez = parseToDezimal(sourceLang, value);
      return writeToLanguage(targetLang, dez);
   }

   public static int parseToDezimal(String sourcelang, String value){
      int pot = sourcelang.length();
      int result = 0;

      for(int i = 0; i <value.length(); i++){
         char c = value.charAt(value.length()- i-1);
         int v = sourcelang.indexOf(c);
         int r = (int) (v* Math.pow(pot, i));
         result += r;
      }
      return result;
   }

   public static String writeToLanguage(String targetLang, int dezimalValue){
      int pot = targetLang.length();
      StringBuilder result = new StringBuilder();

      while(dezimalValue!=0){
         int v = dezimalValue %pot;
         dezimalValue = dezimalValue/pot;

         result.append(targetLang.charAt(v));
      }

      return result.reverse().toString();
   }


}
vielleicht hilft dir das...

parseToDezimal parst eine Zahl nach dezimal,
sourcelang ist hier die Sprache "01" für binär, "0123456789" dezimal oder "0123456789ABCDEF" hex usw...

writeToLanguage schreibt eine dezimal zahl in als die angegebenen sprache...

verständlich?
 

ARadauer

Top Contributor
so kann man damit hex addieren...
Java:
  String hexlang = "0123456789ABCDEF";
     
     int dez = parseToDezimal(hexlang,"C"); //12
     int dez2 = parseToDezimal(hexlang,"78"); //120
     System.out.println(dez);
     System.out.println(dez2);
     System.out.println(writeToLanguage(hexlang, dez+dez2)); //84 hex = 132 dez...
 

Painii

Bekanntes Mitglied
writeToLanguage schreibt eine dezimal zahl in als die angegebenen sprache...

Das funktioniert aber nur mit Systemen mit 2 Zeichen...
Sonst wird die while-schleife unendlich, weil ja dezimalValue/1 == dezimalValue ist:
Java:
while(dezimalValue!=0){
         int v = dezimalValue %pot;
         dezimalValue = dezimalValue/pot;
 
         result.append(targetLang.charAt(v));
      }
:D
 

ARadauer

Top Contributor
klar.. das erste zeichen repräsentiert ja 0... ein zahlensystem mit 0 und sonst nix... mhn da wirst nicht weit kommen...
 

ARadauer

Top Contributor
??
2 mal 0 ist noch immer null ;-)

int r = (int) (v* Math.pow(pot, i));

v ist hier die nullerstelle, v bleibt 0

es gibt kein zahlensystem mit der basis 1.
wenn wir unser zahlensystem nehmen,
ist 0 das selbe wie 00 oder 0000000000000000000000000000
 

Painii

Bekanntes Mitglied
Aber ich könnte ja sagen ich nehme ein Symbol s.

Und sage einfach:
s=0
ss=1
sss=2
ssss=3

und dann einfach für jeden Zahl ein weiteres s anhängen/vorsetzen.

Wäre das kein Zahlensystem? Ich kann mich errinern dass wir früher in der Schule (1. oder 2. Klasse) so gezählt haben, da hatten wir dann Striche als Symbole und zum Schluss wurden die einfach zusammen gezählt.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Ostkreuz Methoden Von Dezimal zu Hexadezimal Methode toHex Java Basics - Anfänger-Themen 2
S Int zu Hexadezimal - Rekursive Methode Java Basics - Anfänger-Themen 2
M Erste Schritte boolean: ist Zahl Hexadezimal - Lösung verwirrend Java Basics - Anfänger-Themen 6
S Umrechner (Dezimal, Hexadezimal und Binär) Java Basics - Anfänger-Themen 3
F Erste Schritte Dezimal in Hexadezimal Java Basics - Anfänger-Themen 5
M hexadezimal in binär mit Hilfe von Shift-Operatoren Java Basics - Anfänger-Themen 6
Z Methoden Methode, die Ziffer aus Hexadezimal in Zehnerdezimal umrechnet Java Basics - Anfänger-Themen 5
Luk10 String (Hexadezimal) zu int parsen Java Basics - Anfänger-Themen 12
E Hexadezimal in Dezimal Java Basics - Anfänger-Themen 25
E Methoden umrechnung binär/oktal/hexadezimal in dezimalsystem (Methode) Java Basics - Anfänger-Themen 1
U Dezimal zu Hexadezimal rekursive Funktion Java Basics - Anfänger-Themen 8
F dezimal zu hexadezimal Java Basics - Anfänger-Themen 14
N Umrechung Binär in Dezimal und Hexadezimal Java Basics - Anfänger-Themen 7
S Wie überprüfen das in Textfield nur Hexadezimal ist? Java Basics - Anfänger-Themen 4
M Hexadezimal Problem Java Basics - Anfänger-Themen 13
A Hexadezimal Java Basics - Anfänger-Themen 7
T Integer zu Hexadezimal konvertieren Java Basics - Anfänger-Themen 6
G Dezimal zu Hexadezimal Java Basics - Anfänger-Themen 2
E Hexadezimal in double, int, char Java Basics - Anfänger-Themen 7
M wie hexadezimal in dezimal wandeln? Java Basics - Anfänger-Themen 16
V Binär + Hexadezimal Java Basics - Anfänger-Themen 3
S dezimal od. hexadezimal Java Basics - Anfänger-Themen 3
onlyxlia Anzahl Random Zahlen mit Scanner abfragen und in Array speichern Java Basics - Anfänger-Themen 10
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
P Aus Text Datei nur Zahlen übernehmen Java Basics - Anfänger-Themen 13
K Warum werden immer noch doppelte Zahlen ausgegeben ? Java Basics - Anfänger-Themen 13
M negative Zahlen bei Intervallen Java Basics - Anfänger-Themen 10
XWing Doppelte Zahlen im Array Java Basics - Anfänger-Themen 8
M 3 Zahlen miteinander vergleichen Java Basics - Anfänger-Themen 18
J Taschenrechner mit mehr als 2 Zahlen. Java Basics - Anfänger-Themen 18
O Zahlen aus einem char-array per char + Zeichen addieren Java Basics - Anfänger-Themen 2
B Alle Zahlen finden, die 3 bestimmte Ziffern enthalten? Java Basics - Anfänger-Themen 9
K Java gleicher Wert von Zahlen? Java Basics - Anfänger-Themen 5
I aus 2 random zahlen soll nur die ungerade summe der beiden genommen werden. Java Basics - Anfänger-Themen 13
J Operatoren Zahlen addieren Java Basics - Anfänger-Themen 13
B Threads Counter mit ungeraden Zahlen Java Basics - Anfänger-Themen 32
JavaBeginner22 Java 2 Zufalls zahlen generieren. Java Basics - Anfänger-Themen 11
X Wie kann man ein Regex erstellen, die 8-Bit-Binär-Zahlen darstellen. Java Basics - Anfänger-Themen 1
M Stream mit den ersten n natürlichen Zahlen Java Basics - Anfänger-Themen 4
D Größtes Palindrom Produkt aus zwei dreistelligen Zahlen Java Basics - Anfänger-Themen 60
T Methode, die prüft ob in einem Int-Array maximal 2 Zahlen enthalten sind, die größer als ihr Vorgänger sind Java Basics - Anfänger-Themen 5
sserio Befreundete Zahlen Java Basics - Anfänger-Themen 7
AhmadSlack Verzweigungen zahlen multiplizieren Java Basics - Anfänger-Themen 4
padde479 Array Multiplikation der ersten n Zahlen Java Basics - Anfänger-Themen 7
U Lotto-Zahlen App Java Basics - Anfänger-Themen 34
berserkerdq2 Wie würde man einen regulären Ausdruck in Java schreiben, der prüft, dass zwei bestimtme Zahlen nicht nebeneinadner sind? Java Basics - Anfänger-Themen 3
H Arrays: Größten Zahlen Unterschied herausfinden Java Basics - Anfänger-Themen 20
bluetrix Programmieren eines Bots für Zahlen-Brettspiel Java Basics - Anfänger-Themen 9
J Zahlen bis zu einem bestimmten Grenzwert ausgeben Java Basics - Anfänger-Themen 11
00111010101 Objektorientiertes Programmieren mit Vererbung (Zahlen in Array verschwinden) Java Basics - Anfänger-Themen 3
P Zweidimensionales Array als Tabelle mit befüllten Zahlen Java Basics - Anfänger-Themen 10
W Wie ziehe ich von einer bestimmten Zahl, Zahlen ab, bis mein Ergebnis null beträgt? Java Basics - Anfänger-Themen 10
emx-zee Erste Schritte NullPointerException, Array mit zufälligen Zahlen füllen Java Basics - Anfänger-Themen 2
W Bestimmte Zahlen bei Math.random ausschließen? Java Basics - Anfänger-Themen 31
K Erste Schritte "Taschenrechner" zeigt keine Komma Zahlen an. Java Basics - Anfänger-Themen 8
P Drei Zahlen eines Würfelspiels auswerten Java Basics - Anfänger-Themen 7
H Häufigkeit von Zahlen ermitteln Java Basics - Anfänger-Themen 23
sashady Zahlen rekursiv zerlegen und Ziffern addieren Java Basics - Anfänger-Themen 38
H Zahlen kürzen Java Basics - Anfänger-Themen 2
ansystin Teilerfremde Zahlen ausgeben + Zahlenausgabe speichern Java Basics - Anfänger-Themen 3
B Häufigkeit einzelner Zahlen in einem Array Java Basics - Anfänger-Themen 6
nevel Programm für die Summer der Zahlen 1- 1ß Java Basics - Anfänger-Themen 12
jhCDtGVjcZGcfzug Fibonacci Zahlen rekursiv und iterativ Java Basics - Anfänger-Themen 21
H Eingegebene Zahlen mit Array ausgeben Java Basics - Anfänger-Themen 18
I 12 Spalten von jeweils 30 Zahlen in Konsole ausgeben Java Basics - Anfänger-Themen 6
R Array mit Unter- und Obergrenze ganze Zahlen dazwischen erscheinen nicht Java Basics - Anfänger-Themen 1
OZAN86 For Schleife von 1-50 die Zahlen werden durch ein Komma getrennt Java Basics - Anfänger-Themen 10
Bademeister007 Operatoren Alle Zahlen einer ArrayList die durch 5 teilbar ist Java Basics - Anfänger-Themen 2
mhmt_03 dafür sorgen, dass im JTextfield nur zahlen eingebbar sind Java Basics - Anfänger-Themen 9
Ianatrix Zahlen von a bis b berechnen Java Basics - Anfänger-Themen 7
P Wie kann ich die Zahlen dieses Arrays dividieren? Java Basics - Anfänger-Themen 2
P Nutzer entscheiden lassen, wie viele Zahlen dieser in ein Array eingeben möchte. Java Basics - Anfänger-Themen 6
T Bestimmte Zahlen ausgeben mit einer whilfe Schleife Java Basics - Anfänger-Themen 21
H Alle Geraden zahlen bis 10 ausgeben Java Basics - Anfänger-Themen 11
java3690 Liste mit zufälligen zahlen füllen Java Basics - Anfänger-Themen 27
macle Rekursive String Methode, Gerade Zahlen rausfiltern Java Basics - Anfänger-Themen 10
M Regex nur Zahlen und Punkt zulassen, Keine Eingabe(Leeres TextFeld) nicht zulassen Java Basics - Anfänger-Themen 6
L Mit Zahlen im String rechnen Java Basics - Anfänger-Themen 19
G Java eingelesene Zahlen Java Basics - Anfänger-Themen 2
D Zahlen werden falsch gekürzt :? Java Basics - Anfänger-Themen 27
H Ungerade Zahlen ausgeben von 1 bis 1000 Java Basics - Anfänger-Themen 8
C Positive und negative Zahlen mit Regex extrahieren Java Basics - Anfänger-Themen 8
N Wörter und Zahlen nach speziellen Wörtern ausgeben Java Basics - Anfänger-Themen 11
F Komplexe Zahlen auf verschiedene Weise addieren Java Basics - Anfänger-Themen 18
L Java Int-Array, Zahlen sortieren Java Basics - Anfänger-Themen 8
B Fibonacci Zahlen dynamische Programmierung Java Basics - Anfänger-Themen 7
V Erste Schritte Taschenrechner mit beliebig vielen Zahlen Java Basics - Anfänger-Themen 5
X Wie kann ich Zahlen in einzelne Zifferne zerlegen? Java Basics - Anfänger-Themen 3
J 10 positive Zahlen eingeben Java Basics - Anfänger-Themen 10
K Rechtsbündige Ausgabe von Zahlen Java Basics - Anfänger-Themen 6
A Wie zwei zahlen in einer Variable speichern? Java Basics - Anfänger-Themen 7
M Zahlen erraten Java Basics - Anfänger-Themen 7
E Zahlen von einem Array mit zahlen von zweitem Array vergleichen Java Basics - Anfänger-Themen 27
S Mit nextGaussian() positive Zahlen erzeugen? Java Basics - Anfänger-Themen 39
D auch negative Zahlen sotieren Java Basics - Anfänger-Themen 18
M Warum berechnet mein Primzahlenprog zu hohe Zahlen nicht? Java Basics - Anfänger-Themen 20
W Bell Zahlen Java Basics - Anfänger-Themen 2
H Min und Max von Zahlen Java Basics - Anfänger-Themen 10
der_Schokomuffin Fehler bei Zufallsgeneration von Zahlen Java Basics - Anfänger-Themen 7
J Erste Schritte Alle möglichen ausgaben von 5 Zahlen als Vector Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben