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);
}
