Methoden Zahlensysteme umrechnen / "Quartärsystem"

Viktormk

Mitglied
Hallo Community,

ich habe ein Problem. Es geht darum, dass wir aktuell eine Aufgabe haben: eine Zahl wird eingelesen und davon berechnet wie viele Zahlen davon im "Quartärsystem" (Basis 4) 1, 2 oder 3 sind.
Dazu habe ich jetzt eine Methode wo ich eine Zahl einlese und dann diese Zahl im "Quartärsystem" ausgebe.
Code:
public static void main(String args[]) {

        Scanner meinScanner = new Scanner(System.in);
        System.out.println("Eingabe:");
        int meineEingabe = meinScanner.nextInt();

        int ausgabe = 0, i = 0;
        while (meineEingabe != 0) {
            int eingabeRest = meineEingabe % 4;
            ausgabe = ausgabe + eingabeRest * (int) Math.pow(10, i);
            i++;
            meineEingabe = meineEingabe / 4;
        }
        System.out.println("Ausgabe: " + ausgabe);
        meinScanner.close();
    }
Als nächstes muss ich mithilfe von Bit Operationen &, |, >>, << usw. "Nicht-0 Stellen ermitteln und Anzahl, wie viele es sind ebenfalls ausgeben.

Da ist der Hacken, hat jemand hier eine Idee ? Eine Lösung habe ich mit String gelöst, doch wir sollen es mit Bit Operationen lösen, den ich muss dann das Programm mit vorhandener Testdatei testen.
 

Meniskusschaden

Top Contributor
Als nächstes muss ich mithilfe von Bit Operationen &, |, >>, << usw. "Nicht-0 Stellen ermitteln und Anzahl, wie viele es sind ebenfalls ausgeben.
Ich nehme an, es sind die Nicht-Null-Stellen der Quartärzahl gemeint? Dann kannst du ausnutzen, dass sich Binärzahlen sehr einfach in Quartärzahlen umrechnen lassen, weil immer genau ein Ziffernpaar der Binärdarstellung in genau eine Ziffer der Quartärdarstellung umgerechnet werden kann.

Du kannst also einfach eine UND-Verknüpfung der eingegebenen Dezimalzahl mit drei vornehmen, um den Wert der beiden letzten Bits zu ermitteln (was ja der letzten Quartärziffer entspricht) und das Ergebnis mit Null vergleichen. Das kannst du mit geeigneten Rechtsverschiebungen für alle Ziffern wiederholen.

Falls dir das noch nicht einleuchten sollte, kannst du dir die Zahlen von 1 bis ca. 15 untereinander aufschreiben, mit je einer Spalte für Dezimal-, Binär- und Quartärdarstellung. Dann sieht man den Zusammenhang ganz gut.
 

Viktormk

Mitglied
Das ist ein gutes Ansatz. Ich habe jetzt das Problem, dass ich von decimal zu 4ersystem anders kommen muss, da ich dann bei den tests negative eingabe wie. z.B. -15 habe. Wie könnte ich decimal zu 4ersystem mit Bit Operationen realisieren ? Danke für die ersten Ansätze trotzdem.
 

Meniskusschaden

Top Contributor
Na ja, du könntest so etwas in deinen Code einbauen:
Java:
int faktor = meineEingabe>0?1:-1;
meineEingabe *= faktor;
.
.
.
ausgabe *= faktor;
Bin aber immer noch nicht sicher, ob ich die Aufgabenstellung wirklich verstanden habe.
 

Viktormk

Mitglied
Hallo Leute, so sieht fertige Lösung aus, für die die es interessiert:

Code:
public class viererSystem {
   
    static int ausgabe;
    static int nichtNullzaehlen = 0;
    static String mErgebnis = "";
   
    public static void main(String args[]) {

        Scanner meinScanner = new Scanner(System.in);
        System.out.println("Eingabe:");
        int meineEingabe = meinScanner.nextInt();

       
        if (meineEingabe==0){       
           
            System.out.println(meineEingabe);
            System.out.println("Nicht-Null:" + nichtNullzaehlen);
           
           
        }else{           
        while (meineEingabe != 0) {

            ausgabe = meineEingabe & 0b11;
            mErgebnis = ausgabe + mErgebnis;
            meineEingabe = meineEingabe >>> 2;
           
            if(ausgabe > 0){
               
                nichtNullzaehlen = nichtNullzaehlen+1;
            }
   
        }

        System.out.println("Ausgabe: " + mErgebnis);
        System.out.println("Nicht-Null: " + nichtNullzaehlen);
       
        meinScanner.close();
       
        mErgebnis = "";
        nichtNullzaehlen = 0;
       
        }
    }
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N Zahlensysteme umrechnen; Probleme bei Kommazahlen Java Basics - Anfänger-Themen 3
K Umrechnung in verschiedene Zahlensysteme Java Basics - Anfänger-Themen 39
K In andere Zahlensysteme umwandeln, wann klappt immer der Trick mit log? Java Basics - Anfänger-Themen 6
K Methoden Zahlensysteme umwandeln mittels Rekursion Java Basics - Anfänger-Themen 5
O Dezimalzahl in andere Zahlensysteme Java Basics - Anfänger-Themen 5
G Umwandlung in verschiedene Zahlensysteme Java Basics - Anfänger-Themen 4
J Zahlensysteme Java Basics - Anfänger-Themen 5
C Zahlensysteme Java Basics - Anfänger-Themen 2
H Uhrzeitespanne in Integer Wert umrechnen Java Basics - Anfänger-Themen 1
M Weitere Längen umrechnen Java Basics - Anfänger-Themen 2
W Stellenwertsysteme Umrechnen Java Basics - Anfänger-Themen 12
W Stellenwertsysteme umrechnen Java Basics - Anfänger-Themen 22
C Gleitkommazahl in Dezimalzahl umrechnen Java Basics - Anfänger-Themen 4
B Relativen Anteil von zwei Datümer auf Monatsebene umrechnen Java Basics - Anfänger-Themen 130
P Zeichenkette mit Binärzahl in Dezimalzahl umrechnen Java Basics - Anfänger-Themen 3
F Koordinaten umrechnen Java Basics - Anfänger-Themen 10
GreenTeaYT Datentypen Fahrenheit - Celsius Umrechnen 2in1 Variable? Java Basics - Anfänger-Themen 10
D Liste mit Zeitstempeln in Arbeitszeit umrechnen Java Basics - Anfänger-Themen 7
A Software zum Umrechnen römischer Zahlen Java Basics - Anfänger-Themen 10
B tageszahl in Datum umrechnen Java Basics - Anfänger-Themen 6
H Umrechnen Aufgabe Java Basics - Anfänger-Themen 3
M Compiler-Fehler Binäre Zahlen in Dezimalzahlen umrechnen Java Basics - Anfänger-Themen 3
E Umrechnen Basis 2-36, Probleme mit Basis 36 Java Basics - Anfänger-Themen 8
R Minuten umrechnen. Java Basics - Anfänger-Themen 9
E Datentypen Von int in double umrechnen. Java Basics - Anfänger-Themen 3
E Datum und Uhrzeit von UTC in MET umrechnen Java Basics - Anfänger-Themen 6
J Gleitkommazahl in Dezimalzahl umrechnen Java Basics - Anfänger-Themen 5
V Programm zum Umrechnen von Pferdestärken in kW Java Basics - Anfänger-Themen 9
P Datentypen int in Prozent "umrechnen" Java Basics - Anfänger-Themen 4
V Tool zum Umrechnen Dezimal in Hex Java Basics - Anfänger-Themen 7
Developer_X Kreiskoordinaten in Normale Koordinaten umrechnen Java Basics - Anfänger-Themen 4
N Laufzeit in Nanosekunden - in Minuten umrechnen Java Basics - Anfänger-Themen 6
N Tage in Jahre, Monate umrechnen Java Basics - Anfänger-Themen 1
G Uhrzeit hh:mm:ss in minuten umrechnen Java Basics - Anfänger-Themen 4
G Timestamp in Minuten umrechnen Java Basics - Anfänger-Themen 8
S Millisekunden umrechnen Java Basics - Anfänger-Themen 12
J Datum in Kalenderwoche umrechnen Java Basics - Anfänger-Themen 3
F Seknunden in dd.MM.YYYY umrechnen Java Basics - Anfänger-Themen 9
G Farbwerte umrechnen Java Basics - Anfänger-Themen 4
M mm in cm umrechnen und auf 5er oder auf 10er aufrunden! Java Basics - Anfänger-Themen 2
G Maßeinheiten umrechnen Java Basics - Anfänger-Themen 3
D Formel zum umrechnen in java o_O Java Basics - Anfänger-Themen 9
R in Binärzahlen umrechnen Java Basics - Anfänger-Themen 15
M Dateigrösse umrechnen? Java Basics - Anfänger-Themen 6
G Umrechnen von Zahlensystemen Java Basics - Anfänger-Themen 7
G byte und double umrechnen Java Basics - Anfänger-Themen 3
F Quartärsystem Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben