Input/Output I-stellige Hexadezimalzahlen schreiben

eclipseworker

Bekanntes Mitglied
Ich habe versucht ein Programm zu schreiben, dass mir bei der Eingabe einer Variablen i alle Hexadezimal-zahlen mit i Stellen unter einander hinschreibt, begonnen bei 0. Also will ich wenn ich 2 eingebe diese Ausgabe
00
01
...
ff
und bei 3 diese:
000
001
...
fff
usw. Mein Code macht aber das (bei der Eingabe 2):
0
1
...
f
0
1
...
f
Was kann ich tun ????:L
Hier ist der Code :shock: (auch im Anhang als JAVA-Datei denn er kompiliert tut nur nicht was er soll)
Java:
package do25;
import java.util.*;
public class do25 {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		while (true) {
			try {
				System.out.println("Bitte Sie geben Zahl ein:");
				class Some {
					Scanner sc = new Scanner(System.in);
					public int i = sc.nextInt();
				}
				int i = (new Some()).i;
			    dienst(i);
				break;
			} catch (InputMismatchException e) {
				System.err.println("Geben Sie eine Zahl ein!");
			} 
		}
	}

	private static void dienst(int nextInt) {
		// TODO Auto-generated method stub
		for (int k=1;k <= nextInt; k++){
				letter(k);
			}
		}

	private static void letter(int j) {
		for (j=0; j<=15;j++){
		if (j<=9){
			System.out.print(j);
		} else {
			switch (j){
				case 10: System.out.print("a"); break;
				case 11: System.out.print("b"); break;
				case 12: System.out.print("c"); break;
				case 13: System.out.print("d"); break;
				case 14: System.out.print("e"); break;
				case 15: System.out.print("f"); break;
			}
		}
		System.out.println();
		
		}
	}
}
 

Anhänge

  • do25.java
    1,1 KB · Aufrufe: 5

Volvagia

Top Contributor
Ohne mir den Code anzusehen:

1) Integer.toHexString(i)
2) Integer.parseInt(s, radix) (Als Umkehrfunktion benutzbar).
3) 00 -> 0 -> (To Dez.) -> 0. 0 ist also niemals eine 2-Stellige Zahl. Die erste 2-Stellige Hexadezimale Zahl ist 10.
4) Ist dir klar, das in der While eine Klasse steht? So etwas komisches habe ich noch nie gesehen, hätte auch nicht gedacht, dass es gehen würde. Anonyme Klassen ja, aber komplett neue definieren? Oo
5) Die erste Zahl mit einer bestimmten Stellenanzahl beginnt im Hexadezimalen wie auch im Dezimalen, Binären oder Oktalen mit einer 1 gefolgt von (n - 1) 0. Diese Zahl kannst du einfach so darstellen. Danach musst du sie nur nach Dez. umrechnen lassen, eine Schleife um 1 erhöhen, und jedes mal wieder zu Hex und die Stellen zählen. So einfach ginge das, wenn ich jetzt keinen Denkfehler gemacht habe.
 
F

Firephoenix

Gast
Hi,
immer erst Anfangen das Problem an sich zu verstehen ^^
Zum rausfinden ob eine Zahl in einem bestimmtem Zahlensystem x Stellen hat kann man log zur basis des Zahlensystems verwenden.
In dem fall hier kann man sich sogar das casten der int-werte sparen *grins*
ob man in dem Fall jetzt length per args abfragt oder von der Kommandozeile ließt sei jedem selbst überlassen ;)
Java:
public static void main(String[] args) {
		int number = 0;
		int length = 3;
		while(Math.log(number)/Math.log(16) < length){
			System.out.println(Integer.toHexString(number++));
		}
	}
@Volvagia, Klassen kann man "eigentlich" überall deklarieren, ob die dann Anonym sind oder benannt sind unterscheidet sich für den Compiler nicht, da er im Hintergrund sowieso .class Dateien erzeugt (benennung ist dabei immer namederhauptklasse$zahl.class, sieht man gut wenn man mal zu den .class springt bei größeren projekten)
Gruß
 

eclipseworker

Bekanntes Mitglied
Hi,
immer erst Anfangen das Problem an sich zu verstehen ^^
Zum rausfinden ob eine Zahl in einem bestimmtem Zahlensystem x Stellen hat kann man log zur basis des Zahlensystems verwenden.
In dem fall hier kann man sich sogar das casten der int-werte sparen *grins*
ob man in dem Fall jetzt length per args abfragt oder von der Kommandozeile ließt sei jedem selbst überlassen ;)
Java:
public static void main(String[] args) {
		int number = 0;
		int length = 3;
		while(Math.log(number)/Math.log(16) < length){
			System.out.println(Integer.toHexString(number++));
		}
	}
@Volvagia, Klassen kann man "eigentlich" überall deklarieren, ob die dann Anonym sind oder benannt sind unterscheidet sich für den Compiler nicht, da er im Hintergrund sowieso .class Dateien erzeugt (benennung ist dabei immer namederhauptklasse$zahl.class, sieht man gut wenn man mal zu den .class springt bei größeren projekten)
Gruß
Das funktioniert gut ich hätte, aber gerne, dass das ganze mit führenden Nullen angeschrieben wird. Und lenght ist die Eingabe (das was ich als i definiert habe?)
 
F

Firephoenix

Gast
Hi,
meine Überlegung dahinter war(keine Garantie auf Korrektheit!):
eine Zahl x in einem Zahlensystem zur Basis y hat Logarithmus von x zur Basis y Stellen.
Also kann ich die zahl gemütlich dezimal hochzählen und mit dem log prüfen ob die Zahl außerhalb meines Stellenbereichs ist. Das mache ich hiermit:
Java:
Math.log(number)/Math.log(16) < length
Dann gebe ich die Zahl hexadezimal aus und nachdem sie ausgewertet wurde zähle ich sie eins hoch:
Java:
System.out.println(Integer.toHexString(number++));
Das ganze auf führende nullen zu erweitern ist auch kein Akt (wie elegant das jetzt noch ist sei mal dahingestellt :D)

1. den Hex-String nicht direkt ausgeben sondern erstmal merken
2. wenn der String kürzer als die länge ist wird er solange mit führenden nullen gefüllt bis es passt
3. dann den String ausgeben

Java:
public static void main(String[] args) {
		int number = 0;
		int length = 3;
		while(Math.log(number)/Math.log(16) < length){
			String hexString = Integer.toHexString(number++);
			while(hexString.length() < length){
				hexString = "0"+hexString;
			}
			System.out.println(hexString);
		}
	}

Bei längeren Strings hätte man damit zwar einige unnötige Array-Verschiebungen, aber ich glaube in dem Stellenbereich für Performanz bewegen wir uns gerade nicht :D
Gruß

Edit: etwas schneller wird es jedenfalls schonmal wenn man Math.log(16) nur einmal berechnet und als variable speicher - eben noch eingefallen.
 
Zuletzt bearbeitet von einem Moderator:

fastjack

Top Contributor
Warum denn so kompiliziert? Du weist doch wieviel Stellen maximal erlaubt! Rechne die Zahl um, wandle sie in String und überprüfe die Länge, oder teile halt geschickt. Wenn Du weist, das die Zahl 2 Stellen hat, dann mußt Du sie in in der Ausgabe einfach auffüllen, bis i.

[edit]also i - Zahllänge Nullen voranschreiben[/edit]
 

eclipseworker

Bekanntes Mitglied
Hi,
meine Überlegung dahinter war(keine Garantie auf Korrektheit!):
eine Zahl x in einem Zahlensystem zur Basis y hat Logarithmus von x zur Basis y Stellen.
Also kann ich die zahl gemütlich dezimal hochzählen und mit dem log prüfen ob die Zahl außerhalb meines Stellenbereichs ist. Das mache ich hiermit:
Java:
Math.log(number)/Math.log(16) < length
Dann gebe ich die Zahl hexadezimal aus und nachdem sie ausgewertet wurde zähle ich sie eins hoch:
Java:
System.out.println(Integer.toHexString(number++));
Das ganze auf führende nullen zu erweitern ist auch kein Akt (wie elegant das jetzt noch ist sei mal dahingestellt :D)

1. den Hex-String nicht direkt ausgeben sondern erstmal merken
2. wenn der String kürzer als die länge ist wird er solange mit führenden nullen gefüllt bis es passt
3. dann den String ausgeben

Java:
public static void main(String[] args) {
		int number = 0;
		int length = 3;
		while(Math.log(number)/Math.log(16) < length){
			String hexString = Integer.toHexString(number++);
			while(hexString.length() < length){
				hexString = "0"+hexString;
			}
			System.out.println(hexString);
		}
	}

Bei längeren Strings hätte man damit zwar einige unnötige Array-Verschiebungen, aber ich glaube in dem Stellenbereich für Performanz bewegen wir uns gerade nicht :D
Gruß

Edit: etwas schneller wird es jedenfalls schonmal wenn man Math.log(16) nur einmal berechnet und als variable speicher - eben noch eingefallen.

Hat gut funktioniert :applaus: nur als ich lenght auf 4 geändert habe begann dass ganze bei cbea :autsch: ich möchte aber, dass das Programm unabhängig von lenght funktioniert. :bahnhof:
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L 10-Stellige Zahl hochzählen lassen Java Basics - Anfänger-Themen 1
G 9-stellige Zahl mit den Ziffern 1-9 Java Basics - Anfänger-Themen 2
Spin 4 stellige random zahl erzeugen Java Basics - Anfänger-Themen 4
S 4-stellige Zufallszahl Java Basics - Anfänger-Themen 4
T 5-stellige Zahlenausgabe Java Basics - Anfänger-Themen 2
E Mittelquadratmethode für Hexadezimalzahlen Java Basics - Anfänger-Themen 1
V String mit Hexadezimalzahlen in Binär umwandeln Java Basics - Anfänger-Themen 2
P Gibt es einen anderen Weg um "{}" in IntelliJ zu schreiben? Java Basics - Anfänger-Themen 5
T code so schreiben das er von sich selber anpasst (code soll die anzahl aller bustaben bestimmen) Java Basics - Anfänger-Themen 16
M Daten aus errechneter Methode in Datenbank(SQLite) schreiben Java Basics - Anfänger-Themen 60
W Objekte einer ArrayList in txt-datei schreiben mit Paths? Java Basics - Anfänger-Themen 2
M Test auf Exceptions schreiben Java Basics - Anfänger-Themen 11
F Wie kann ich eine Funktion schreiben, die nur in bestimmten Fällen einen Wert zurückgibt? Java Basics - Anfänger-Themen 5
HolyFUT JSON String in Java Object schreiben - Anführungszeichen rauskriegen? Java Basics - Anfänger-Themen 17
java-starter Erste Schritte Mit While Schleifen Programme schreiben Java Basics - Anfänger-Themen 4
berserkerdq2 Wo ist der SInn, dass man den Stream, den ich zum Schreiben nutze, outputstream nenne? Java Basics - Anfänger-Themen 5
viktor1 Methoden Methode schreiben static void readText (String filename) {...} zu WordHistogramSample.java Java Basics - Anfänger-Themen 13
D JAVA Programm schreiben Java Basics - Anfänger-Themen 46
S In Datei schreiben in Java? Java Basics - Anfänger-Themen 1
J Dateien lesen und schreiben Java Basics - Anfänger-Themen 5
berserkerdq2 IO Streams logfile erstellen und Sachen schreiben wie? Java Basics - Anfänger-Themen 2
M Text in Datei schreiben Java Basics - Anfänger-Themen 9
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
S Bot schreiben Java Basics - Anfänger-Themen 1
J Kann ich mein Programm so schreiben? Java Basics - Anfänger-Themen 4
C Brauche Hilfe beim Schreiben eines Programmes :/ Java Basics - Anfänger-Themen 1
C Brauche Hilfe um ein Programm zu schreiben Java Basics - Anfänger-Themen 8
C XML Datei schreiben Java Basics - Anfänger-Themen 14
S Objekte von zwei klassen in zwei verschiedene Textdateien schreiben Java Basics - Anfänger-Themen 5
T Methode schreiben, die einem Array ein Stringelement hinzufügt, wenn dieses noch nicht enthalten ist. Java Basics - Anfänger-Themen 6
T Inhalt aus TextField in Attribut einer Instanz schreiben Java Basics - Anfänger-Themen 5
NeoLexx Datenströme Lesen und Schreiben einer Textdatei Java Basics - Anfänger-Themen 2
B Inputstream in file schreiben? Java Basics - Anfänger-Themen 23
L Test-Methoden schreiben Java Basics - Anfänger-Themen 13
L x und y Koordinaten in ein Array schreiben Java Basics - Anfänger-Themen 7
J Programm schreiben Java Basics - Anfänger-Themen 5
G In Datei schreiben Java Basics - Anfänger-Themen 1
B Werte aus einem Unterprogramm in ein Array schreiben Java Basics - Anfänger-Themen 2
J Methode zur Ausgabe eines Dreiecks aus Sternen schreiben? Java Basics - Anfänger-Themen 2
J Methode selber schreiben Java Basics - Anfänger-Themen 5
M Plateau Prgramm schreiben Java Basics - Anfänger-Themen 2
G Programm schreiben: Zahl (n) eingeben, 1+1/n+2/n+3/n+....+n/n Java Basics - Anfänger-Themen 8
J String in Datei schreiben Java Basics - Anfänger-Themen 4
L Kleine Hilfe beim Schreiben eines Programmes benötigt :D Java Basics - Anfänger-Themen 40
J Lesen und schreiben in eine Datei(Anfänger- Dateizugriffe) Java Basics - Anfänger-Themen 3
S JSON Datei schreiben und lesen Java Basics - Anfänger-Themen 3
W Einfachen, ein beliebiges Zeichen oft erkennenden Regex Parser selber schreiben - wie vorgehen? Java Basics - Anfänger-Themen 12
B CSS Klassen in eine Liste schreiben Java Basics - Anfänger-Themen 4
H projekt 1 code schöner schreiben. Java Basics - Anfänger-Themen 25
O findRoot Methode schreiben in einem Intervall Java Basics - Anfänger-Themen 31
O Erste Schritte Eigene charAt(i) Methode schreiben Java Basics - Anfänger-Themen 10
X Arrays untereinander schreiben Java Basics - Anfänger-Themen 4
K Probleme beim Programm schreiben - Lesen von Dateiinhalten -zaehlen von Wörtern/ Buchstaben Java Basics - Anfänger-Themen 4
A Erste Schritte Bitte helfen sie mir diese Programm zu schreiben Java Basics - Anfänger-Themen 12
L Input/Output Konsole in Farben schreiben Java Basics - Anfänger-Themen 4
P Strings in String Array schreiben Java Basics - Anfänger-Themen 13
Y kann jemand die Terme mit Zahlen schreiben ?? Java Basics - Anfänger-Themen 4
L Input/Output In Farben schreiben Java Basics - Anfänger-Themen 3
x-tshainge In gespeicherter Datei schreiben? Java Basics - Anfänger-Themen 7
F Schreibprogramm nur markierten Text in kursiv oder fett schreiben Java Basics - Anfänger-Themen 3
A JSON Lesen und Schreiben. Java Basics - Anfänger-Themen 3
L Eigene Exception schreiben bei zu langem Array Java Basics - Anfänger-Themen 10
karlmasutra Ausgabe in ein Array schreiben Java Basics - Anfänger-Themen 14
T Zufällige Matrix in neue Matrix schreiben Java Basics - Anfänger-Themen 6
F Mehrere Zeilen zu einer Zeile zusammenfügen und in eine Datei schreiben Java Basics - Anfänger-Themen 1
J Mit JSF Formular in Datenbank schreiben Java Basics - Anfänger-Themen 3
amazinglife77 Input/Output Lesen/Schreiben Properties: in eclipse geht, als JAR nicht Java Basics - Anfänger-Themen 4
S Wie muss ich die Generische Methode schreiben? Java Basics - Anfänger-Themen 6
R Input/Output Dateinamen aus Verzeichnis in Datei schreiben Java Basics - Anfänger-Themen 3
E Wert in Textfeld schreiben Java Basics - Anfänger-Themen 1
P Erste Schritte Schreiben in eine Datei Java Basics - Anfänger-Themen 9
M Java Roboter schreiben mit Eclipse Java Basics - Anfänger-Themen 3
J Probleme beim schreiben von Dateien Java Basics - Anfänger-Themen 5
M Rekursion schreiben Java Basics - Anfänger-Themen 16
M In einer Datei schreiben - Java Java Basics - Anfänger-Themen 3
D Eine einfache Verschlüsselung schreiben Java Basics - Anfänger-Themen 3
X Streams und Ausgabe - lässt sich das einfacher schreiben oder schöner schreiben? Java Basics - Anfänger-Themen 5
T Erste Schritte Schreiben Sie eine Klasse Zeit, die eine Zeitdauer in Minuten beschreibt. Die Anzahl Minuten verwalt Java Basics - Anfänger-Themen 3
G Java Objektorientiert schreiben Java Basics - Anfänger-Themen 1
D Daten mit Apache POI in eine Excel Datei schreiben Java Basics - Anfänger-Themen 5
N Lambda Ausdrücke richtig schreiben Java Basics - Anfänger-Themen 4
B Schreiben von zu vielen Einträgen in einer Datenbank Java Basics - Anfänger-Themen 9
F Wert in Linux auf die Konsole schreiben Java Basics - Anfänger-Themen 3
A von ArrayList in Labels schreiben Java Basics - Anfänger-Themen 19
X Kann man post increment "vollständig schreiben"? Java Basics - Anfänger-Themen 13
T Klassen In Eingabefeld von externem Programm schreiben wenn angewählt. Java Basics - Anfänger-Themen 6
X Dateien direkt hintereinander schreiben, Dateiname Java Basics - Anfänger-Themen 25
G Messwerte in 2 Dateien schreiben Java Basics - Anfänger-Themen 20
I Input/Output 3 Werte in Datei schreiben, duplikate vermeiden Java Basics - Anfänger-Themen 4
H Integer in Datei schreiben Java Basics - Anfänger-Themen 2
W Java in "Terminal" schreiben Java Basics - Anfänger-Themen 9
D Datentypen StringToFloat-Methode schreiben Java Basics - Anfänger-Themen 0
P Telefontarif Programm schreiben Java Basics - Anfänger-Themen 5
L Methode schreiben die den maximalen Wert im Array ermittelt Java Basics - Anfänger-Themen 27
M Best Practice Wann eine Methode schreiben ? Java Basics - Anfänger-Themen 14
S Komma geht beim Schreiben ins csv verloren. Java Basics - Anfänger-Themen 6
F Input/Output Dateien lesen/schreiben Java Basics - Anfänger-Themen 1
O Bubblesort allgemeiner schreiben Java Basics - Anfänger-Themen 5
B Probleme bei "Daten in CSV File schreiben". Java Basics - Anfänger-Themen 9
R Button soll Wert 1 in Variable schreiben Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben