繁体   English   中英

使用创建的常量(不是parseINT())将二进制更改为十进制,并声明和初始化数字的8位中的每一个

[英]Changing binary to decimal using created constants (not parseINT() ) and declaring and initializing each of the 8 bits of the number

分配

我现在一直在为此工作。 我需要创建常量,然后声明并初始化每个常量,然后再将其乘以其位置值(128、64、32、16、8、4、2、1)

我知道Integer.parseINT(Binary ....)会很快完成这项工作,但是我不能使用它。

接下来是我到目前为止的情况,我是否走在正确的轨道上? 我知道我需要获取每个单独的用户输入值,并将它们乘以它们的位置值,然后相加来创建小数点,但是我一生都无法弄清楚如何通过for循环或定义每个变量

import java.util.Scanner;
import java.util.Arrays;
import java.util.List;
import java.util.ArrayList;
import java.lang.Integer;
import javax.swing.JComboBox;

public class Binary
{

public static void main(String [] args)
{
    Scanner keyboard = new Scanner (System.in);
    System.out.println("Enter Binary Number Please");
    Integer[] digits = getDigits(keyboard.nextInt());



    System.out.println(Arrays.toString(digits));

}//End bracket method main

    public static Integer[] getDigits(int num)
    {
        List <Integer> digits = new ArrayList <Integer>();
        collectDigits(num, digits);
        return digits.toArray(new Integer[]{});

    }//end bracket method Integer

    private static void collectDigits(int num, List <Integer> digits)
    {

       if(num / 10 > 0)
       {
            collectDigits(num / 10, digits);

        }//End method collectDigits

        digits.add(num % 10);

    }

}

我想分离用户输入二进制文件的每个字符,以便可以将它们乘以它们的位置值,然后添加每个乘积以创建总和,然后将其通过System.out.println()显示给用户。

您正在导入错误的列表类型。 更改此行:

import java.awt.List;

至:

import java.util.List;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM