首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >需要编写Java转换器

需要编写Java转换器
EN

Stack Overflow用户
提问于 2018-09-16 09:58:04
回答 1查看 64关注 0票数 0

我需要帮助。我有个任务要做转换器。

1)能够将十进制数转换为二进制数的代码。(结果应再次转换为十进制数)

( 2)能将十进制数转换成八进制的码。(结果应再次转换为十进制数)

3)能够将十进制数转换为十六进制的代码。(结果应再次转换为十进制数)

任务禁止编写两个单转换器,例如:一个用于十进制->二进制转换器,另一个用于二进制->十进制转换器。,它应该是每个任务的一个转换器:从十进制到->二进制,然后从二进制、->、十进制等转换结果。用户应该能够输入数字(结果除外)。

我为第一项任务编写了代码,但它不能正常工作

代码语言:javascript
复制
package javalearn;

import java.util.Scanner;

public class DecimalToBinary {

    public static void DecimalToBinary() {
    Scanner in = new Scanner(System.in);
    int decimal = 0, n = 0;
    int num, i, var = 0;
    int[] intArray;
    intArray = new int[10];

    System.out.println("Enter your decimal number: ");
    num = in.nextInt();
    for (i = 0; num > 0; i++) {
        intArray[i] = num % 2;
        num = num / 2;
    }
    System.out.println("Converted decimal number into binary: ");
    for (i = i - 1; i >= 0; i--) {

        System.out.print(intArray[i]);

    }

    System.out.println();
    // Next

    while (true) {
        if (intArray[i] == 0) {
            break;
        } else {
            int temp = intArray[i] % 10;
            decimal += temp * Math.pow(2, n);
            intArray[i] = intArray[i] / 10;
            n++;
        }
    }
    System.out.println(intArray[i]);            
}
EN

回答 1

Stack Overflow用户

发布于 2018-09-16 10:42:17

您将得到一个ArrayIndexOutOfBoundsException,因为在第二个for条件下,将i计数为-1,然后在down循环if(intArray[i] == 0)中再次使用它。您可以使用一个临时变量来保留i值,并在计数后将其赋值给i

有些像:

代码语言:javascript
复制
int temp = i;
for(...){
....
}
i = temp;
while(true){
...
}

祝你的作业顺利。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52352950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档