java - 需要验证循环,二进制到十进制未输出正确的答案

标签 java validation loops binary

我知道这很难看,但它有效(不是真的)它只是编译成功

我无法使用 Integer.parseInt() 或 Math.max

我必须定义每个字符并设置要检查的算法

我理解像 11111111 这样的 8 位二进制数的概念,其十进制为 255,但是在我的程序中它就像 12495...什么说明我做错了什么?

也不是每个二进制数都是 8 个字符,我怎样才能让代码接受它并验证提示中只输入了 1 和 0?

import java.util.Scanner;

public class Binary
{
    public static void main(String[] args)
    {
        Scanner keyboard = new Scanner(System.in);
        System.out.println("Enter Binary Number Please:");
        String aString = keyboard.next();
        char aChar = aString.charAt(0);
        int digit_1 = aString.charAt(0);
        char bChar = aString.charAt(1);
        int digit_2 = aString.charAt(1);
        char cChar = aString.charAt(2);
        int digit_3 = aString.charAt(2);
        char dChar = aString.charAt(3);
        int digit_4 = aString.charAt(3);
        char eChar = aString.charAt(4);
        int digit_5 = aString.charAt(4);
        char fChar = aString.charAt(5);
        int digit_6 = aString.charAt(5);
        char gChar = aString.charAt(6);
        int digit_7 = aString.charAt(6);
        char hChar = aString.charAt(7);
        int digit_8 = aString.charAt(7);
        float dec_1 = (digit_1*128);
        float dec_2 = (digit_2*64);
        float dec_3 = (digit_3*32);
        float dec_4 = (digit_4*16);
        float dec_5 = (digit_5*8);
        float dec_6 = (digit_6*4);
        float dec_7 = (digit_7*2);
        float dec_8 = (digit_8*1);
        float Answer = (dec_1+dec_2+dec_3+dec_4+dec_5+dec_6+dec_7+dec_8);
        System.out.println(Answer);
    }//End bracket method main
}//End bracket class Binary

最佳答案

数学是正确的,但是当您查看 charAt(position) 时,它返回一个字符,并且应该为您提供 ASCII 值而不是数字值。

你应该使用这样的东西

Character.getNumericValue(c)

所以像这样

char theChar0 = String.charAt(0);
int digit0 = Character.getNumericValue(theChar0);

我很确定这是正确的 - 我是一名应届大学毕业生,所以无论如何都不是专家,但祝你好运!

关于java - 需要验证循环,二进制到十进制未输出正确的答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39378621/

相关文章:

javascript - 使用 jQuery 对象表示法的变量闭包

java - 在 webView 中阻止键盘

java - mysqldump(错误代码 : 2) trying do backup from java in linux (server) with wildfly

javascript - 验证在 Mozilla 中不起作用,但在 Google Chrome 中起作用

asp.net-mvc - mvc远程验证

python - 更好/更快地循环遍历集合或列表?

c++ - For循环只是......没有开始?

java - 将泛型用于 Java 类的属性

java - Android - 检查数组中是否存在值

java - ESAPI 规范化格式错误的 url