【问题标题】:Java convert from decimal to 8-bit binaryJava从十进制转换为8位二进制
【发布时间】:2018-02-23 16:28:41
【问题描述】:

我编写了简单的 java 代码来将十进制转换为 8 位二进制: 对不起这个愚蠢的问题

 1       int dec=1;
 2       String result="";
 3       String reverse = "";
 4       while(dec!=0)
 5           {
 6               result+=dec%2;
 7               dec=dec/2;    
 8           }            
 9       //8-Bit Binary 
 10       System.out.println("dec length is :"+result.length());

// int j=8-result.length(); // for(int i=0;i

 11        for(int i=0;i<(8-result.length());i++)
 12       {
 13            result+=0;
 14            System.out.println("*");
 15       }
 16       System.out.println("8-Bit before reverse:"+result); 
 17       for(int i = result.length() - 1; i >= 0; i--)
 18        {
 19           reverse = reverse + result.charAt(i);
 20        }
 21       System.out.println("8-bit representation:"+reverse);

结果是: dec长度为:1 * * * * 反转前8位:10000 8位表示:00001

但是当我删除第 13 行 (result+=0;) 时,编译器会打印 7 星号 (*),这是什么原因?结果的长度每次都会更新

【问题讨论】:

    标签: java


    【解决方案1】:

    这是因为你的 for 循环的配置:

    for(int i=0;i<(8-result.length());i++)
    

    以及其中的动作:

    result+=0;
    

    增加 result 的长度会使 8-result.length() 的结果更小(8 - 2 = 6, 8 - 3 = 5 ...),因此循环执行的次数更少。

    【讨论】:

      【解决方案2】:

      因为resultString。将int 零添加到String,就像这样

      result+=0;
      

      调用与

      相同的行为
      result+=String.valueOf(0);
      

      【讨论】:

      • @IhabKhaledShhadat 不行!!!!!!!!!! 深呼吸。计算机是一个非常快的白痴,它完全按照它的指示去做。获取二进制String 的快速方法是Integer.toBinaryString(int);除此之外,我无法说出你的问题是什么。
      【解决方案3】:
      //Decimal to Binary Conversion
                  int dec=1;
                  String result= "00000000";
                  int i=result.length()-1;
                  while(dec!=0)
                  {
                    char a[]=result.toCharArray();
                    a[i--]= String.valueOf(dec%2).charAt(0);
                    result=new String(a);
                    dec=dec/2;  
      
                  }
                  System.out.println(result);
      

      【讨论】:

        猜你喜欢
        • 2018-06-24
        • 2014-03-01
        • 1970-01-01
        • 2019-09-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-29
        • 2017-03-19
        相关资源
        最近更新 更多