Anzeige

 Zahlen vom Typ int in Binärdarstellung!


Status
Nicht offen für weitere Antworten.
#1
Hey Leute!
Ich als Anfänger sitze grad an der Aufgabe ein Progrämmchen in Java zu schreiben, dass eine ganze Zahl vom Typ int in Binärdarstellung ausgibt.
Habe den Hinweis bekommen, dies mit den Bitoperatoren & und << zu tun.
Kann mir jemand helfen wie ich das konkret umsetze?

Sollte so einfach wie möglich sein das Programm, also nix besonderes.
Dachte ich geh da mit ner if else schleife ran, allerdings macht mir die Umsetzung mit diesen Bitoperatoren Rätsel.
 
#2
Hallo,

ich hab da mal flott ein kleines Programm geschrieben welches dir weiterhelfen sollte.
Code:
// Dieses Programm berechnet die Umwandlung einer Dezimalzahl in das Binärsytem
// Datum: 25/09/2003

import java.io.*;      // Importiere Input-Output Package

public class dextobin
       {
        public static void main (String [] args) throws
        IOException
                   {
                     BufferedReader ein = new BufferedReader (new InputStreamReader (System.in));

                     int d,i=0,t; // d=Dezimalzahl, i=Hilfszähler, t=Hilfsvariable
                     int[] b;     // Array Definition
                     b = new int [20];
                     System.out.print ("Welche Zahle moechten sie umwandeln ?");
                     d=Integer.valueOf (ein.readLine()).intValue();     // Eingabe des Dezimalwertes

                     do    // Berechnung des Binärwertes
                     {
                       t=d/2;
                       b[i]=d-2*t;
                       i++;
                       d=t;
                     }while(d>=1);

                     i--;        // "Fehler" ausgleichen
                     System.out.print ("Binar-Wert:");
                     do               // geordnete Ausgabe des Binärwertes
                     {
                       System.out.print (b[i]);
                       i--;
                     }while(i>=0);
                   }
       }
Es gibt sicherlich noch andere Methoden diese Umwandlung zu machen, ich möchte dir diese mit auf den Weg geben. Ich denke diese Methode erklärt sich von alleine, wenn du schonmal eine Umrechnung zwischen diesen beiden Zahlensystemen auf einem einfachen Blatt Papier gemacht hast, wenn nicht.... dann frag halt nochmal nach.

Gruß nach Pforzheim

Brasilian
 
#3
merci

Vielen Dank für die Vorlage.
Ja, die Berechnung auf m Papier war mir klar, hapert nur an
der Umsetzung.
Aber mit deiner Vorlage müsste ich es hinbekommen.
Danke für den Tip.
Gruss
matze
 
#4
Servus!

Hier noch ein kleines Beispiel zu dem Thema:

Code:
/*
 * IntToBin.java
 *
 * Created on 12. Oktober 2003, 23:18
 */

/**
 *
 * @author  Administrator
 */
public class IntToBin {
    
    /** Creates a new instance of IntToBin */
    public IntToBin() {
        
    }
    
    public void doIt(){
        
        
        for (int zahl = 0; zahl <= 100000; zahl++){
            StringBuffer sb = new StringBuffer();
            System.out.println("Zahl: " + zahl);
            int maxExp = log2(zahl);
            for(;maxExp >= 0;maxExp--){
                if((zahl & (int)Math.pow(2,maxExp)) != 0){
                    System.out.print(1);
                    sb.append('1');
                } else {
                    System.out.print(0);
                    sb.append('0');
                }
            }
            System.out.println("\n"+Integer.toBinaryString(zahl));
            if (Integer.toBinaryString(zahl).equals(sb.toString()))
                System.out.println("Stimmt!");
            else System.out.println("Fehler!");
            System.out.println("----------------");
        }
        
    }
    
    private int log2(int z){
        return (int)(Math.log(z)/Math.log(2));
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        
        new IntToBin().doIt();
    }
    
}
Gruß Tom
 

zap

Grünschnabel
#5
Habs so gemacht...

Java:
import java.util.*;

public class binarOutput
{
  
   public static void main(String[] args)
   {
      
       Scanner input = new Scanner(System.in);
      
       System.out.println("Welche Zahl möchten Sie konvertieren?");
      
       double n = input.nextDouble();
  
      
      
       for (int k=64; k>=0; k--)
       {      
           if ( Math.pow(2, k)<=n)  
           {
               System.out.print("1");
          
               n = n - Math.pow(2, k);
           }
          
           else 
           {
               System.out.print("0");
           }
//          

       }
   }
}
 
Zuletzt bearbeitet von einem Moderator:
#8
Falls es dir nicht bewusst ist, in den meisten Forensystemen gibt es eine Möglichkeit, alle neuen Beiträge seit dem letzten Besuch etc. aufzulisten. Durch deinen Beitrag hast du viele Leute auf das Thema hier aufmerksam gemacht.

Der automatische Hinweis vor Abschicken, dass das Thema schon sehr alt ist, hatte schon auch seinen Sinn.

...jedenfalls scheint das Thema gelöst zu sein, und ist ab jetzt zu.
 
Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
Anzeige

Neue Beiträge

Anzeige