Java :: Aufgabe #182
4 Lösungen

Zahlen umwandeln: Binär zu Dezimal
Anfänger - Java
von Nachbar
- 13.09.2017 um 14:19 Uhr
Schreibe eine Funktion, die Zahlen aus dem Dualsystem in Zahlen des Dezimalsystems umwandelt.
Beispiel:
Binär: 11010
Dezimal: 26
Beispiel:
Binär: 11010
Dezimal: 26
Lösungen:

import java.util.Scanner; class dualtodec { static int ausgabe = 0; public static int umwandeln(String eingabe) { ausgabe = Integer.parseInt(eingabe, 2); return ausgabe; } public static void main (String[] args) throws java.lang.Exception { Scanner reader = new Scanner(System.in); String eingabe = reader.next(); reader.close(); System.out.println("Binär: " + eingabe + "\nDezimal: " + umwandeln(eingabe)); } }

import java.util.Scanner; public class Main { static Scanner sc = new Scanner(System.in); static String input; static int output; public static void main(String[] args) { while(sc.hasNext()){ input = sc.next(); output = 0; for(int i=0;i<input.length();i++){ if(input.charAt(i) == '1') output += Math.pow(2,input.length()-1-i); } System.out.println(output); } } }

package eu.etzelsdorfer; /** * Java Class BinaryToDecimal * * @author: Thomas Etzelsdorfer * @version: 1.0.0 */ public class BinaryToDecimal { // Property : binary private long binary; public void setBinary(long binary){this.binary = binary;} public long getBinary(){return this.binary;} /** * Constructor * @param binary */ public BinaryToDecimal(long binary){ setBinary(binary); } /** * convert binary to decimal * @return decimal */ public long convert(){ long decimal = 0; long n = 0; while(getBinary() != 0){ decimal += ((getBinary()%10)*Math.pow(2,n)); setBinary(getBinary()/10); n++; } return decimal; } }
Aufruf

// .. class public static void main(String...args){ long bin = 11010; System.out.printf("Binary: %d >> Decimal: %d \n",bin,new BinaryToDecimal(bin).convert()); }
Main-Klasse:
Java-Code
Methoden die ich aus meinem Methodensammlung package benutzt habe:
Java-Code

import Methodensammlung.Methoden; /** * Aufgabe: * * Schreibe eine Funktion, die Zahlen aus dem Dualsystem in Zahlen des Dezimalsystems umwandelt. * * @author (nOrdan) * @version (19.06.19) */ public class Umrechner { Methoden m = new Methoden(); public static void main(String [] args) { Umrechner u = new Umrechner(); u.inputs(); } private void inputs() { boolean valid1 = false; int zahl = 0; while (valid1 == false) { String input1 = m.userInput("Geben sie ihre Zahl in Binärschreibweise ein"); m.errorStringInput(input1); int counter = 0; for (int i = 0; i < input1.length(); i++) { if (input1.charAt(i) == '0' || input1.charAt(i) == '1') { counter++; } } if (counter == input1.length()) { valid1 = true; umrechnung(input1); } else { m.errorMessage("Invalid user input","Invalid input"); continue; } } } private void umrechnung(String zahl) { char [] charArray = zahl.toCharArray(); int ausgabe = 0; for (int i = 0; i < charArray.length; i++) { ausgabe += Math.pow(2,i) * (charArray[i] - 48); } m.informationMessage("Die Zahl " + zahl + " aus dem Dualsystem ist in Dezimalschreibweise " + ausgabe,"Eingabe"); } }
Methoden die ich aus meinem Methodensammlung package benutzt habe:

public String userInput(String message) { return JOptionPane.showInputDialog(message); } public void errorStringInput(String input) { if (input == null) { System.exit(0); //Drückt der User auf abbrechen wird null zurück gegeben und das Programm wird beendet } else if (input.isEmpty() == true) { informationMessage("Da sie nichts eingegeben haben wird auch nichts ausgegeben","No input"); System.exit(0); } } public void errorMessage(String message,String errorName) { JOptionPane.showMessageDialog(null,message,errorName,JOptionPane.ERROR_MESSAGE); } public void informationMessage(String message,String informationName) { JOptionPane.showMessageDialog(null,message,informationName,JOptionPane.INFORMATION_MESSAGE); }