程序功能,它先将键盘上输入的一个字符串转换成十进制整数,然后打印出这个十进制整数对应的二进制形式。
mport java.io.IOException;
public class TenToTwo
{   

public static void main(String[] args) throws Exception

System.out.print("Please input int number:");
String s = readString();
while(isNumString(s) == 0 || isNumString(s)==-1)
{
if(isNumString(s) == 0)
{
System.out.print("You input isn't integer,please input again: ");
s = readString();
  }
  else
  {
   System.out.print("You input number is too lang,please input again:  ");
s = readString();   
  }
}
  Integer ten = new Integer(s.trim());
  System.out.print(ten + " Two code is: ");
  toTwo(ten.doubleValue());
  System.out.println();

}


   static void toTwo(double num)
{
int LEN = 16;
//int len=0;
if(num > 65535||(0-num) > 65535)
{
LEN=32;
}
Integer two[] = new Integer[LEN];

for(int i = 0;i<LEN;i++)
{
two[i] = new Integer(0);
}
int len = 0;
    if(num < 0)
    {
     two[0] = new Integer(1);
     num = 0-num;
    }     do
    {
     two[LEN-1-len] = new Integer(((int)num)%2);
     len++;
     num = (int)num/2;
    }
    while(num > 0);
 
    
        for(int i = 0;i < LEN;i++)
      {
         System.out.print(i);
     System.out.print(two[i]);
     if((i + 1)%8==0)
     {
     System.out.print("  ");
     }
     }
   

 }




    static String readString() throws Exception
    {
    StringBuffer sb = new StringBuffer();
    char ch = ' ';
    while((ch = (char)(System.in.read()))!='\r')
      {
       sb.append(ch);
      }
      System.out.println(sb.toString().trim());
      return sb.toString().trim();
    }
 
 
 
      
   
    static int isNumString(String s)
    {
    int rt = 1;
    int len = s.length();
    char[] c = new char[len];
    c = s.toCharArray();
    if((c[0] == '-'&&len-1 > 9)||len > 9)
    {
    rt = -1;
    }
    else
    {
    for(int i = 1;i < len;i++)
    {
    if(c[i]-'0' > 9)
    {
    rt = 0;
    }
    else 
    {
    rt = 1;
    }
   
    }
    }
    return rt;
    }
      
 

}

解决方案 »

  1.   

    用这么复杂吗
    Integer.toBinaryString()
    就可以直接转换了
      

  2.   

    import java.io.IOException;
    public class TenToTwo
    {   

    public static void main(String[] args) throws Exception

    System.out.print("Please input int number:");
    String s = readString();
    while(isNumString(s) == 0 || isNumString(s)==-1)
    {
    if(isNumString(s) == 0)
    {
    System.out.print("You input isn't integer,please input again: ");
    s = readString();
      }
      else
      {
       System.out.print("You input number is too lang,please input again:  ");
    s = readString();   
      }
    }
      Integer ten = new Integer(s.trim());
      System.out.print(ten + " Two code is: ");
      toTwo(ten.doubleValue());
      System.out.println();}


    static void toTwo(double num)
    {
    int LEN = 16;
    //int len=0;
    if(num > 65535||(0-num) > 65535)
    {
    LEN=32;
    }
    Integer two[] = new Integer[LEN];for(int i = 0;i<LEN;i++)
    {
    two[i] = new Integer(0);
    }
    int len = 0;
    if(num < 0)
    {
    two[0] = new Integer(1);
    num = 0-num;
    }do
    {
    two[LEN-1-len] = new Integer(((int)num)%2);
    len++;
    num = (int)num/2;
    }
    while(num > 0);    
     for(int i = 0;i < LEN;i++)
     {
        System.out.print(i);
    System.out.print(two[i]);
    if((i + 1)%8==0)
    {
    System.out.print("  ");
    }
     }
       

    }




    static String readString() throws Exception
    {
    StringBuffer sb = new StringBuffer();
    char ch = ' ';
    while((ch = (char)(System.in.read()))!='\r')
    {
    sb.append(ch);
    }
    System.out.println(sb.toString().trim());
    return sb.toString().trim();
    }     static int isNumString(String s)
    {
    int rt = 1;
    int len = s.length();
    char[] c = new char[len];
    c = s.toCharArray();
    if((c[0] == '-'&&len-1 > 9)||len > 9)
    {
    rt = -1;
    }
    else
    {
    for(int i = 1;i < len;i++)
    {
    if(c[i]-'0' > 9)
    {
    rt = 0;
    }
    else 
    {
    rt = 1;
    }

    }
    }
    return rt;
    }
    }
      

  3.   

    import java.io.IOException;
    public class TenToTwo
    {   

    public static void main(String[] args) throws Exception

    System.out.print("Please input int number:");
    String s = readString();
    while(isNumString(s) == 0 || isNumString(s)==-1)
    {
    if(isNumString(s) == 0)
    {
    System.out.print("You input isn't integer,please input again: ");
    s = readString();
      }
      else
      {
       System.out.print("You input number is too lang,please input again:  ");
    s = readString();   
      }
    }
      Integer ten = new Integer(s.trim());
      System.out.print(ten + " Two code is: ");
      toTwo(ten.doubleValue());
      System.out.println();}


    static void toTwo(double num)
    {
    int LEN = 16;
    //int len=0;
    if(num > 65535||(0-num) > 65535)
    {
    LEN=32;
    }
    Integer two[] = new Integer[LEN];for(int i = 0;i<LEN;i++)
    {
    two[i] = new Integer(0);
    }
    int len = 0;
    if(num < 0)
    {
    two[0] = new Integer(1);
    num = 0-num;
    }do
    {
    two[LEN-1-len] = new Integer(((int)num)%2);
    len++;
    num = (int)num/2;
    }
    while(num > 0);    
     for(int i = 0;i < LEN;i++)
     {
        System.out.print(i);
    System.out.print(two[i]);
    if((i + 1)%8==0)
    {
    System.out.print("  ");
    }
     }
       

    }




    static String readString() throws Exception
    {
    StringBuffer sb = new StringBuffer();
    char ch = ' ';
    while((ch = (char)(System.in.read()))!='\r')
    {
    sb.append(ch);
    }
    System.out.println(sb.toString().trim());
    return sb.toString().trim();
    }     static int isNumString(String s)
    {
    int rt = 1;
    int len = s.length();
    char[] c = new char[len];
    c = s.toCharArray();
    if((c[0] == '-'&&len-1 > 9)||len > 9)
    {
    rt = -1;
    }
    else
    {
    for(int i = 1;i < len;i++)
    {
    if(c[i]-'0' > 9)
    {
    rt = 0;
    }
    else 
    {
    rt = 1;
    }

    }
    }
    return rt;
    }
    }
      

  4.   

    不好意思,重发~
    import java.io.IOException;
    public class TenToTwo
    {   

    public static void main(String[] args) throws Exception

    System.out.print("Please input int number:");
    String s = readString();
    while(isNumString(s) == 0 || isNumString(s)==-1)
    {
    if(isNumString(s) == 0)
    {
    System.out.print("You input isn't integer,please input again: ");
    s = readString();
      }
      else
      {
       System.out.print("You input number is too lang,please input again:  ");
    s = readString();   
      }
    }
      Integer ten = new Integer(s.trim());
      System.out.print(ten + " Two code is: ");
      toTwo(ten.doubleValue());
      System.out.println();}


    static void toTwo(double num)
    {
    int LEN = 16;
    //int len=0;
    if(num > 65535||(0-num) > 65535)
    {
    LEN=32;
    }
    Integer two[] = new Integer[LEN];for(int i = 0;i<LEN;i++)
    {
    two[i] = new Integer(0);
    }
    int len = 0;
    if(num < 0)
    {
    two[0] = new Integer(1);
    num = 0-num;
    }do
    {
    two[LEN-1-len] = new Integer(((int)num)%2);
    len++;
    num = (int)num/2;
    }
    while(num > 0);    
     for(int i = 0;i < LEN;i++)
     {
        System.out.print(i);
    System.out.print(two[i]);
    if((i + 1)%8==0)
    {
    System.out.print("  ");
    }
     }
       

    }




    static String readString() throws Exception
    {
    StringBuffer sb = new StringBuffer();
    char ch = ' ';
    while((ch = (char)(System.in.read()))!='\r')
    {
    sb.append(ch);
    }
    System.out.println(sb.toString().trim());
    return sb.toString().trim();
    }     static int isNumString(String s)
    {
    int rt = 1;
    int len = s.length();
    char[] c = new char[len];
    c = s.toCharArray();
    if((c[0] == '-'&&len-1 > 9)||len > 9)
    {
    rt = -1;
    }
    else
    {
    for(int i = 1;i < len;i++)
    {
    if(c[i]-'0' > 9)
    {
    rt = 0;
    }
    else 
    {
    rt = 1;
    }

    }
    }
    return rt;
    }
    }
      

  5.   

    用这么复杂吗
    Integer.toBinaryString(int)
    就可以直接转换了
      

  6.   

    关键是要求不能使用toBinaryString方法实现~
      

  7.   

    for(int i = 0;i < LEN;i++)
    {
    /* 把这一行注释掉  */
    //System.out.print(i);//你要print i干吗?!
    System.out.print(two[i]);
    if((i + 1)%8==0)
    {
    System.out.print(" ");
    }
    }
      

  8.   

    除了开头的import敲成了mport之外,没有报其它错误。
      

  9.   

    感谢 dogod~~~!今天太晕了犯这样的错误