我是初学者 菜鸟一只帮忙解决一下编写一个程序,把十进制数转换成二进制数。

解决方案 »

  1.   

    这个....数存机器里本身就是二进制的
    如果你是想把这个二进制打印出来,方法如下: /** 
     * Display the binary form of primitive byte
     * Every four-bit has a ','
    */
    public static void bin(byte b) {
    char[] charBits = toCharBits(b, 8);
    outputWholeBits(charBits);
    }

    /** 
     * Display the binary form of primitive char
     * primitive char is Unicode and takes 16-bit pre-char 
     * Every four-bit has a ','
    */
    public static void bin(char b) {
    char[] charBits = toCharBits(b, 16);
    outputWholeBits(charBits);
    }

    /** 
     * Display the binary form of primitive short
     * Every four-bit has a ','
    */
    public static void bin(short b) {
    char[] charBits = toCharBits(b, 16);
    outputWholeBits(charBits);
    }

    /** 
     * Display the binary form of primitive int
     * Every four-bit has a ','
    */
    public static void bin(int b) {
    char[] charBits = toCharBits(b, 32);
    outputWholeBits(charBits);
    }

    /** 
     * Display the binary form of primitive long
     * Every four-bit has a ','  
     * Notice the literal "1L", not "1"
    */
    public static void bin(long b) {
    char[] charBits = toCharBits(b, 64);
    outputWholeBits(charBits);
    }

    /** 
     * Display the binary form of primitive float
    */
    public static void bin(float a) {
    char[] charBits = toCharBits(Float.floatToIntBits(a), 32);
    outputFloatBits(charBits);
    }

    public static void bin(double a) {
    char[] charBits = toCharBits(Double.doubleToLongBits(a), 64);
    outputDoubleBits(charBits);
    }


    static char[] toCharBits(long num, int size) {
    char[] charBits = new char[size];
    for (int i = size-1; i >= 0; --i) {
        charBits[i] = (num & 1) == 0 ? '0' : '1';
        num >>>= 1;
    }
    return charBits;
    }

    static void outputWholeBits(char[] charBits){
    for(int i = 0; i < charBits.length; i++){
        System.out.print(charBits[i]);
        if((i % 4 == 3)&&(i != charBits.length-1)) {
         System.out.print(",");
        }
    }
    System.out.println();
      }
      
      static void outputFloatBits(char[] charBits){
    for(int i = 0; i < charBits.length; i++){
        System.out.print(charBits[i]);
        if((i == 0)||(i == 8)) {
         System.out.print(" ");
        }
    }
    System.out.println();
      }
      
      static void outputDoubleBits(char[] charBits){
    for(int i = 0; i < charBits.length; i++){
        System.out.print(charBits[i]);
        if((i == 0)||(i == 11)) {
         System.out.print(" ");
        }
    }
    System.out.println();
      }
      

  2.   

    楼上的写的好多啊,看我这个可能简单点:
    import java.util.*;
    public class TenToTwo
    {
    static StringBuffer result = new StringBuffer();
    public static void main(String[] args)
    {
    int m;
    System.out.print("输入一个十进制数:");
    Scanner s = new Scanner(System.in);
    m = s.nextInt();
    transfer(m);
    result.reverse();
    System.out.println(result);
    }

    public static void transfer(int m)
    {
    if(m == 0)
    return;
    else if(m % 2 == 1)
    result.append('1');
    else
    result.append('0');
    m = m / 2;
    transfer(m);
    }

    }
      

  3.   

    why no use toBinaryString?public class ToBinary {
        public static void main(String[] args) {
            try {
                String s;
                int n = 0;
                while (true) {
                    BufferedReader br = new BufferedReader(System.in);
                    System.out.print("input a decimal/or [E] to exit:");
                    s = br.readLine();
                    if (s!=null && "E".equals(s)) {
                        System.out.println("bye...");
                        break;
                    }
                    try {
                        n = Integer.paseInt(s);
                    } catch (NumberFormatException ex) {
                        System.out.println(s " is an illegal decimal, try again.");
                        continue;
                    }                System.out.println(Integer.toBinaryString(n));
                }
            } catch (Throwable e) {
                e.printStackTrace();
            }
        }

    }
      

  4.   

    如果有浮点数,可以用Double.toBinaryString(double d);
    把上面的n改成double类型,Integer.paseInt改成Double.paseDouble;仅供参考
      

  5.   

    System.out.println(Integer.toBinaryString(10));
      

  6.   

    System.out.println(Integer.toBinaryString(10));
      

  7.   

    楼上的程序有问题啊
    请各位DEBUG一下啊
    还有要能做小数和负数啊