【问题标题】:Converting decimal to binary (Java)将十进制转换为二进制(Java)
【发布时间】:2016-07-27 19:58:10
【问题描述】:

我正在尝试将十进制转换为二进制,但是当我将 128 二进制转换为 11111110 时,我尝试修复计算但仍然得到相同的输出。

import java.lang.*;

public class HA7BinaryErr {
    public static void main(String[] argv) {
        Scanner input = new Scanner(System.in);
        int number = 0;
        int factorOfTwo = 0;
        // get number to convert from user
        do {
            System.out.println("Enter the number to convert (0-255): ");
            number = input.nextInt();

        } while (number < 0 || number > 255);
        System.out.println("The number " + number + " converted to binary is : ");
        // convert to binary by successively dividing by larger factors of 2
        for (factorOfTwo = 1; factorOfTwo <= 128; factorOfTwo *= 2) {
            if (number / factorOfTwo >= 1) {
                System.out.print("1");
                number -= factorOfTwo;
            } else
                System.out.print("0");
        }

    } // end of main
}// end of class

【问题讨论】:

  • factorOfTwo 出错的第一个值是什么?
  • 如果您要求人们尝试阅读,请始终缩进您的代码。
  • 一行:docs.oracle.com/javase/7/docs/api/java/lang/… 你可以通过进入 JDK 中的 src.zip 存档并打开 Integer.java 来查看 Integer 是如何实现的
  • 您正在尝试将 binary 转换为二进制 ASCII。 nextInt() 返回二进制。 int 是二进制的。一切都是二进制的。

标签: java


【解决方案1】:

你有一个问题,你把数字写反了。你需要先从最高位开始

for (int powerOfTwo = 128; powerOfTwo > 0; powerOfTwo /= 2) {

当您以十进制书写时,您从最高功率开始,例如1234 是 1 * 1000 + 2 * 100 + 3 * 10 + 4 * 1

【讨论】:

    【解决方案2】:

    您可以采取简单的方法并使用: Integer.toBinaryString(int i) 然后将字符串打印到控制台。 看看here.

    【讨论】:

      【解决方案3】:
      public class DCTB {
      
      
          public void convertor(int n)
          {
              for(int i=0;i<10;i++)
              {
              int arr=(int) (n%2);
              n=n/2;
              System.out.println(Integer.toString(arr));
              }   
          }
      
          public static void main(String args[])
          {
          DCTB obj=new DCTB();
          obj.convertor(10);
              }
      
      }
      

      【讨论】:

        猜你喜欢
        • 2013-01-24
        • 2020-04-03
        • 2012-06-26
        • 2015-06-02
        • 2011-07-09
        • 1970-01-01
        • 2021-01-29
        • 1970-01-01
        • 2014-10-29
        相关资源
        最近更新 更多