Dual in Dezimal umwandeln?

Status
Nicht offen für weitere Antworten.

Sopcast

Mitglied
Hallo alle zusammen,

ich habe folgenden Code, der eine duale zahl in dezimal umrechnen soll. Das Programm gibt bei binärzahl 1101 -->733 und nicht 13 aus:
Java:
public class DuallInDez {
	
	public static void main(String[]args)
	{
		String dual = "1101";
		int rest;
		int zahl=0;
		int potenzZahl =1;
		
		for(int i = dual.length()-1;i>=0;i--)
		{
		     rest = dual.charAt(i)*potenzZahl;
	                  zahl = rest + zahl;
		     potenzZahl = potenzZahl*2;
		}		
		System.out.println(zahl);
	}
}

Ich denke die rest-Berechnung ist nicht ganz korrekt. Aber mit typecast (int) davor hats nicht geklappt.

Vielen Dank für eure Hilfe!

Gruß
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
dual.charAt(i) liefert z.B. '1', welches als int aber nicht 1 ist sondern 49 oder so,
schau dir die ASCII-Tabelle an
 

Stoggy

Mitglied
Hallo Sopcast,

also ich würde das mit

Java:
Integer.parseInt("1101",2));

lösen.

Gruß Stoggy

Nachtrag:
Da war Ezra wohl schneller ;)
 

Sopcast

Mitglied
Vielen Dank für eure Antworten!
Mein Code sieht jetzt so aus, aber ich bekomme jetzt den Wert 52 :(:
Java:
public class Duallindiz {
	
	public static void main(String[]args)
	{
		String dual = "1101";
		int rest;
		int zahl=0;
		int potenzZahl =1;
		
		for(int i = dual.length()-1;i>=0;i--)
		{
			rest = Integer.parseInt(dual, 2); 
			zahl = rest + zahl;
			potenzZahl = potenzZahl*2;
		}		
		System.out.println(zahl);
	}
}

Edit von L-ectron-X: Für Java-Code bitte
Java:
-Tags verwenden![/SIZE][/i]
 
Zuletzt bearbeitet von einem Moderator:

Sopcast

Mitglied
Achso!, ich brauce die for schleife ja gar nicht!;)
Aber ich muss das mit schleife machen, d.h. den umständlichen weg, für Anfäger...

:oops:
 

Stoggy

Mitglied
Probiers mal so:

Java:
public static void main(String[]args)
	{
		String dual = "1101";
		System.out.println(Integer.parseInt(dual, 2);
	}


Gruß Stoggy
 

Ezra

Bekanntes Mitglied
Du kannst Dein gesamtes Programm ersetzen durch:

Java:
public class Duallindiz {
	
	public static void main(String[]args)
	{
		String dual = "1101";
			
		System.out.println(Integer.parseInt(dual,2);
	}
}

parseInt rechnet Dir schon den gesamten String um, nicht jedes char einzeln, wie Du das zuerst vorhattest.

Edit: Diesmal war Stoggy schneller :D
 

Stoggy

Mitglied
Du kannst Dein gesamtes Programm ersetzen durch:

Java:
public class Duallindiz {
	
	public static void main(String[]args)
	{
		String dual = "1101";
			
		System.out.println(Integer.parseInt(dual,2);
	}
}

parseInt rechnet Dir schon den gesamten String um, nicht jedes char einzeln, wie Du das zuerst vorhattest.

Edit: Diesmal war Stoggy schneller :D

@Ezra: Ja, aber ich war zu langsam für seinen letzten Post. ;(
 

Sopcast

Mitglied
Hallo ihr beiden,
aber wie mache ich es wenn ich jedes Zeichen einzeln bearbeiten möchte? Und noch eine Frage: Wie heißt der Code, wenn ich String dual einlesen möchte?

Gruß
Sopcast
 

Ezra

Bekanntes Mitglied
Den Rest bekommst Du über

rest = Character.digit(dual.charAt(i),2) *potenzZahl;

Wenn Du das in Deinem Ausgangsprogramm ersetzt, kommt auch 13 raus.

@Ezra: Ja, aber ich war zu langsam für seinen letzten Post.
me2
 
Zuletzt bearbeitet:

SvenK

Aktives Mitglied
Java:
for (int i = dual.length() - 1; i >= 0; i--) {
	rest = Character.digit(dual.charAt(i), 10) * potenzZahl;
	zahl = rest + zahl;
	potenzZahl = potenzZahl * 2;
}
So sollte es funktionieren.
 

Sopcast

Mitglied
Hallo Ezra und SvenK

eure beiden Vorschläge funktionieren, aber ich verstehe nicht warum die Methode digit auch ein int braucht? Und warum funktioniert es mit 2 und 10?
Gruß
 

Ezra

Bekanntes Mitglied
Der zweite Int-Wert gibt die Basis der Zahl an. Das funktioniert auch zur Basis 10, weil 0 und 1 in der Basis 10 ebenfalls 0 und 1 sind.
Ich empfehle Dir, auch die API zu nutzen
 

Sopcast

Mitglied
OK, Tausend Dank für eure Hilfe!
Noch eine letzte Frage:
Welchen Code brauche ich um den String einlesen zu können? Das funktioniert nicht...
Code:
String dual = args[0];
Gruß
Sopcast
 

Spin

Top Contributor
Um Strings einlesen zu lassen , müsstest du fertige Methoden importieren, die sich in bestimmten Paketen befinden.

Bsp. in java.util oder in java.io


Java:
Einlesen durch :

BufferedReader eingabe = new BufferedReader(new InputStreamReader(System.in));

String name = eingabe.readLine();


oder:

Scanner sc = new Scanner(System.in);
     int i = sc.nextInt();  // Zahlen einlesen



grüße
 

Sopcast

Mitglied
Mein Code:
Code:
public class Duallindiz {
	
	public static void main(String[]args)
	{
		String dual = args[0];
		int rest;
		int zahl=0;
		int potenzZahl =1;
		
		for(int i = dual.length()-1;i>=0;i--)
		{
			rest = Character.digit(dual.charAt(i),2) *potenzZahl; 
			zahl = rest + zahl;
			potenzZahl = potenzZahl*2;
		}	
		System.out.println(zahl);
	}
}
Und die Fehlermeldung:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at Duallindiz.main(Duallindiz.java:5)

Vielen Dank!
Gruß
 

Ezra

Bekanntes Mitglied
Dann hast Du für args nichts angegeben. Arbeitest Du mit Eclipse? Soll die Eingabe denn überhaupt über args erfolgen oder während des Programms eingegeben werden? Für letzteres brauchst Du die Methoden, die Spin genannt hat.
 

Ezra

Bekanntes Mitglied
Ja, weil args schon vorher angegeben werden muss. Aber wie man das angibt, hängt davon ab, welches Programm Du benutzt. Bei Eclipse wäre das bspw unter run - run configurations - arguments
 

Stoggy

Mitglied
Ich komme gar nicht mal dazu. Wenn ich auf Run klicke erscheint sofort die Fehlermeldung:(

OK, dann is das Problem klar... ;)

Wenn du Netbeans verwendest, dann:
dein Projekt (rechte Maustaste) -> Properties -> Run -> Arguments
dort die Dualzahl eintragen.

Bei Eclipse:
ebenfalls die properties, dann "run/debug settings" -> arguments

Die "args" sind die Argumente, die beim Aufruf des Programms über die Kommandozeile angehängt werden können. args[0] für das erste argument args[1] für das zweite und so weiter...

bsp.:
java -jar deindateiname.jar 1101

Für das was du möchtest, musst auf die Lösung von Spin zurückgreifen.

Gruß Stoggy
 

Sopcast

Mitglied
Vielen Dank euch allen!!!:)
und die Tipps!!! Es funzt jetzt ohne Probleme! Ich habe die Eingabe so gemacht, wies Ezra beschrieben hat!:)

Viele Grüße
Sopcast
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Umwandeln von Dezimal in Dual - Ausgabe incl. Rechenschritte Java Basics - Anfänger-Themen 11
S Algorithmus (reelle Zahl <65536 von dezimal zu dual) max. 10 Nachkommastellen Java Basics - Anfänger-Themen 4
D Dezimal zu Dual mit Rückgabewert Java Basics - Anfänger-Themen 39
F Erste Schritte [GUI] Dual in Dezimal rechnen Java Basics - Anfänger-Themen 5
M Verständnisfrage zur Zahlenumwandlung (Dezimal-->Dual) Java Basics - Anfänger-Themen 25
O Dezimal in Dual...Arraygröße & Runden Java Basics - Anfänger-Themen 4
Ostkreuz Methoden Von Dezimal zu Hexadezimal Methode toHex Java Basics - Anfänger-Themen 2
M Binär zu Dezimal Java Basics - Anfänger-Themen 16
JD_1998 Vorgegebene Methode erweitern um Hex -> Dezimal umzuwandeln Java Basics - Anfänger-Themen 1
P Dezimal zu Hexadezimalzahl Funktion Java Basics - Anfänger-Themen 5
G Dezimal zu Binärcode Programm Java Basics - Anfänger-Themen 9
J Dezimal in Binär (Array) Java Basics - Anfänger-Themen 2
D Umrechnung dezimal -> oktal | signed/unsigned? Java Basics - Anfänger-Themen 1
L Dezimal- zu Binärsystem Java Basics - Anfänger-Themen 4
P 32 Bit Binärzahl Umwandeln in Dezimal Java Basics - Anfänger-Themen 8
D römische Zahlen in Dezimal ausgeben Java Basics - Anfänger-Themen 9
dave253 IEEE-Norm in Dezimal Java Basics - Anfänger-Themen 12
Z Dezimal > Binär-Umrechnung Logikfehler? Java Basics - Anfänger-Themen 8
K Erste Schritte Dezimal in binär Java Basics - Anfänger-Themen 17
S Umwandlung Binär in Dezimal (ohne array etc.) Java Basics - Anfänger-Themen 6
V Binär in Dezimal Java Basics - Anfänger-Themen 4
H Erste Schritte Uhrzeit anzeigen in Minuten Dezimal Java Basics - Anfänger-Themen 8
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
N Compiler-Fehler Dezimal to binary Java Basics - Anfänger-Themen 2
C Dezimal- und InputVerifier/FocusListener Probleme Java Basics - Anfänger-Themen 3
E Hexadezimal in Dezimal Java Basics - Anfänger-Themen 25
G Java Dezimal Zahlen Internazialisation Problem Java Basics - Anfänger-Themen 7
C dezimal in binär Java Basics - Anfänger-Themen 3
M Binär -> Dezimal Java Basics - Anfänger-Themen 11
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
V Tool zum Umrechnen Dezimal in Hex Java Basics - Anfänger-Themen 7
B Dezimal Binär? Java Basics - Anfänger-Themen 10
B Dezimal --> Hex Java Basics - Anfänger-Themen 3
M String(Binärzahl) in Dezimal umwandeln Java Basics - Anfänger-Themen 4
R Unicode-Wert in Binär und Dezimal umformen - kleines Problem Java Basics - Anfänger-Themen 1
G Dezimal zu Hexadezimal Java Basics - Anfänger-Themen 2
S Dezimal- in Hexadezimalzahl umwandeln Java Basics - Anfänger-Themen 4
M wie hexadezimal in dezimal wandeln? Java Basics - Anfänger-Themen 16
C Hilfe bei Umrechnung von dezimal nach binär Java Basics - Anfänger-Themen 9
X Dezimal/-Hexcode in lebares format umwandeln Java Basics - Anfänger-Themen 4
S dezimal od. hexadezimal Java Basics - Anfänger-Themen 3
krgewb String mit Datumsangabe in Long umwandeln Java Basics - Anfänger-Themen 2
R int in Ascci umwandeln Java Basics - Anfänger-Themen 7
I JSON in Objekt umwandeln Java Basics - Anfänger-Themen 3
J Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
String in ArrayList umwandeln Java Basics - Anfänger-Themen 1
S JAR zu EXE umwandeln Java Basics - Anfänger-Themen 22
JavaBeginner22 Integer in String umwandeln Java Basics - Anfänger-Themen 7
java-starter Erste Schritte Eingabe in Char wert umwandeln Java Basics - Anfänger-Themen 7
K In andere Zahlensysteme umwandeln, wann klappt immer der Trick mit log? Java Basics - Anfänger-Themen 6
E PDF Datei im xfdf-Datei umwandeln und auf dem Laufwerk ablegen Java Basics - Anfänger-Themen 0
Naxon89 Input/Output Ein PDF in einem BLOB umwandeln um ihn dann als PDF wieder anzuzeigen Java Basics - Anfänger-Themen 3
C Rekursive Methode in Interative Methode umwandeln Java Basics - Anfänger-Themen 17
J Dezimalzahl in Bruch Umwandeln und Kürzen Java Basics - Anfänger-Themen 8
C Taschenrechner (switch) in Taschenrechner mit Methoden umwandeln Java Basics - Anfänger-Themen 115
J RSA Verschlüsselung Testen / byte[] in Objekt umwandeln Java Basics - Anfänger-Themen 1
S String umwandeln Java Basics - Anfänger-Themen 6
F Character umwandeln als Double Werte Java Basics - Anfänger-Themen 8
K String in Integer umwandeln Java Basics - Anfänger-Themen 4
O Datei in mehrere kleine Dateien umwandeln Java Basics - Anfänger-Themen 47
O Einzelne Bits umwandeln und prüfen Java Basics - Anfänger-Themen 23
O von Basis 10 in Basis x umwandeln Java Basics - Anfänger-Themen 5
R Eingabe String umwandeln zu Integer Werten Java Basics - Anfänger-Themen 8
L String in Integer umwandeln Java Basics - Anfänger-Themen 3
I JSON Datei in Array umwandeln Java Basics - Anfänger-Themen 1
W Dezimalzahl in Binär umwandeln - Was sollte ich an meinem Programm verbessern? Java Basics - Anfänger-Themen 5
S \n nicht in Zeilenumbruch umwandeln Java Basics - Anfänger-Themen 5
W Dezimalzahlen in Binärzahl umwandeln. Wie möglich ? Java Basics - Anfänger-Themen 9
Vince42 NIO File Tree in XML umwandeln Java Basics - Anfänger-Themen 10
R Kompletten String umwandeln in Integer Java Basics - Anfänger-Themen 10
H 32-Bit Zahl (Integer) in eine IPv4 Adresse umwandeln? Java Basics - Anfänger-Themen 2
Orkanson Datentypen Integer in String umwandeln/hinzufügen Java Basics - Anfänger-Themen 3
geekex Double zu String umwandeln in einer Methode Java Basics - Anfänger-Themen 28
MiMa String in Gross und Kleinbuchstaben umwandeln Java Basics - Anfänger-Themen 10
H JCalendar in String umwandeln Java Basics - Anfänger-Themen 9
P Wie kann ich mein Programm zu einer App umwandeln? Java Basics - Anfänger-Themen 4
M Beliebigen Text in *** umwandeln Java Basics - Anfänger-Themen 15
A Rekursion Funktion in eine Iterativ Funktion umwandeln Java Basics - Anfänger-Themen 9
U RegEx alle Kommas bei den Zahlen in Punkt umwandeln Java Basics - Anfänger-Themen 3
E Von Double zu Long umwandeln Java Basics - Anfänger-Themen 9
L String in Binär umwandeln Java Basics - Anfänger-Themen 4
G .java in .jar umwandeln Eclipse Java Basics - Anfänger-Themen 12
W String auf char[] umwandeln Java Basics - Anfänger-Themen 3
K Double Wert runden und in Int umwandeln Java Basics - Anfänger-Themen 7
K For Schleife in While Schleife umwandeln Java Basics - Anfänger-Themen 5
C Array in String umwandeln Java Basics - Anfänger-Themen 5
K Methoden Zahlensysteme umwandeln mittels Rekursion Java Basics - Anfänger-Themen 5
W Wie kann man diesen Code in einen Code umwandeln, der folgendes können sollte? Java Basics - Anfänger-Themen 1
I String zu File umwandeln Java Basics - Anfänger-Themen 2
N Collections String in HashMap umwandeln Java Basics - Anfänger-Themen 3
G tga Datei lesen und in eine matrix umwandeln Java Basics - Anfänger-Themen 1
G Bilddaten in Matrix umwandeln Java Basics - Anfänger-Themen 1
L Java CMD Console in String umwandeln? Java Basics - Anfänger-Themen 2
D String zu int umwandeln Java Basics - Anfänger-Themen 2
D Problem beim umwandeln eines Strings in eine Dzezimalzahl Java Basics - Anfänger-Themen 6
K Wie .java in .jar umwandeln? Java Basics - Anfänger-Themen 5
N Bestimmte Zeichen eines Strings umwandeln Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben