Zahldarstellung

Status
Nicht offen für weitere Antworten.

Huggybear

Mitglied
Hallo,

und zwar wollte ich ein paar Methoden realisieren die mir Zahlen addiert.

Die Zahlen sollen in verschiedenen basen angezeigt werden 2 / 4 / 8 / 10

Java:
public class Zahldarstellung {

    public static long addiere(long zahl1, long zahl2, int basis) {

        return (wie soll ich das realisieren?!);
    }
        public static void main(String[] args) {

            System.out.println(addiere(1001, 11, 2)); // zur Basis 2
        }

}
ich würde mich freuen wenn ihr mir paar Tips geben könntet.

Gruß

Huggybear
 
S

SlaterB

Gast
das Addieren hat nichts mit der Darstellung zu tun,

denke lieber an
int x = 33;
// wie stelle ich das dar?

die Klasse Integer bietet fertige Methoden an, falls das erlaubt ist,
beim selber basteln sollte das doch vornehmlich deine Aufgabe sein,

rechne das erstmal auf dem Papier aus, wenn dir nix einfällt, dann mache eine Wertetabelle

0 dezimal = 0 binär
1 dezimal = 1 binär
2 dezimal = ? binär
usw.
 

Huggybear

Mitglied
Hi,

ja ich weiss das ich das umrechen muss aber wie soll ich das anstellen
z.B.

9 + 3 = 12 und 12 ist binär 1100
dann müsste ich ja theoretisch 1001 + 0011 rechnen.

Da ich in java aber keine Binärzahlen darstellen kann sonder er nur intern in Binär rechnet weiss ich nicht
wie ich das machen soll. :bahnhof:

halt in der form (bla < basis) ? addierteZahl : iwas rechnen^^
 
Zuletzt bearbeitet:

Michael...

Top Contributor
ich würde die Zahlen als String übergeben, da es sich bei den "Zahlen" ja eigentlich um Zahlenrepräsentationen handelt.
Die Klassen Long und Integer bieten z.B. eine Methode diese Repräsentation in eine Zahl zu wandeln.
Long#parseLong(java.lang.String, int)
Ausserdem bieten sie auch die Möglichkeit Zahlen als Binär-, Octal- und Hexadezimalzahl darzustellen. Für die Basis 4 musst Du Dir selbst was überlegen.
 

Huggybear

Mitglied
Hey,

ja das mit parse kenn ich aber soll ich nicht benutzen
ich soll das einfach mit einfacher Rekursion machen :bahnhof:

sowas wie das Horner Schema mit Rest und so..... :rtfm:
 

Michael...

Top Contributor
ja das mit parse kenn ich aber soll ich nicht benutzen
Wenn Du das alles selbst machen musst ist es ein bisschen aufwendiger.
Wenn die Zahlen auch in anderer Darstellung als dezimal übergeben werden können, würde ich diese zunächst mal in Dezimalzahlen umwandeln, addieren und dann in die entsprechende Zahlendarstellung zurückwandeln.
ich soll das einfach mit einfacher Rekursion machen :bahnhof:
Das ist sicherlich mit Rekursion machbar.
Ich würde mit einer Schleife anfangen und solange iterieren, bis die ganzzahlige Division durch die entsprechende Basis 0 ergibt, der dabei jeweils ermittelte Rest ergibt dann Zahlendarstellung

Dezimal: 11
Basis 4:
11 / 4 = 2 --> R: 3
2 / 4 = 0 --> R: 2

--> 11 (dez) entspricht 23 (4)

Wenn das mit der Schleife funktioniert kann man dann ja auf Rekursion umstellen.
 

Huggybear

Mitglied
danke erstmal für die Antworten

so hab ich mir es ja auch vorgestellt :lol:
nur wie ich das in eine schleife packen soll das weiss ich net so recht

Java:
(24 < basis) 
  ? 0 : (24 / basis) + (24 % basis)

sowas in der art denke ich mal... nur wird mein beispiel nicht richtig sein :autsch:
 

Michael...

Top Contributor
nur wie ich das in eine schleife packen soll das weiss ich net so recht

Java:
(24 < basis) 
  ? 0 : (24 / basis) + (24 % basis)

sowas in der art denke ich mal... nur wird mein beispiel nicht richtig sein :autsch:
Das was Du da hast ist eine Bedingung und keine Schleife.

Java:
int number = 16, base = 4;
StringBuffer s = new StringBuffer();
while (number >= base) {
	s.append(number % base);
	number /= base;
}
s.append(number % base);
System.out.println(s.reverse().toString());
 

Leroy42

Top Contributor
Java:
public void recursive(int number, int base) {
  if (number >= base)
    recursive(number/base, base);
  System.out.println(number%base);
}
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben