当前位置: 首页 > 知识库问答 >
问题:

二进制到十进制转换器的输入验证

百里业
2023-03-14

我必须为赋值创建二进制到十进制的数字转换器。这项任务有一些限制。它们是:1。没有无限循环2。中断语句以退出循环3。没有标签或转到语句4。不使用整数。parseInt(字符串s,整数基数)

我得到了部分转换下来,但我有异常处理的问题。我试图在输入不是二进制时显示错误消息,并继续允许用户输入,每次无效的尝试都显示相同的错误消息。

我曾尝试用while和do-while循环替换for循环,但结果对我来说太混乱了。

我还尝试在for循环中嵌套if语句,但不知道如何实现userInput,以便在弹出错误消息后让用户继续输入输入。

long binaryNumber = 0, baseTen = 0;     
String userInput;                       
int i;  
boolean okay;
                                                        
//Asks user to input binary number
        System.out.println("Enter a binary number.");
        userInput = in.nextLine();
                    
            for (i = 0; i <= userInput.length() - 1; i++) {
                char digit = userInput.charAt(i);
    
                //Checks if characters other than 1 or 0 is present
                if ((digit != '1') || (digit != '0') {
                    System.err.println("Try again");
                    okay = false;
                }
                //Converts binary to decimal
                if (digit == '1') {
                    binaryNumber += Math.pow(2, (userInput.length() - i)) / 2;
                    okay = true;
                } else if (digit == '0') {
                binaryNumber += 0;
                    okay = true;
                }

共有1个答案

咸皓
2023-03-14

如果您使用另一个any语句,那么您可以将ok设置为false,并在for循环后检查ok的值,并在打印错误消息后再次检查整个过程。当然,在将ok设置为false之后,您可以中断并停止解析输入。

您还可以抛出异常,而不是将ok设置为false和breaking,捕获异常,然后从更高级别的方法重新启动过程。但是,输入无效数据的用户可能不算例外;您应该总是期望输入错误。

 类似资料:
  • 本文向大家介绍十进制到二进制转换,包括了十进制到二进制转换的使用技巧和注意事项,需要的朋友参考一下 十进制数字也可以转换为二进制格式。要将十进制数转换为二进制数,我们需要将数字除以2,直到达到0或1。然后,在每一步骤中,其余部分将分开存储以形成相反的二进制等效数。 在此算法中,我们将遵循递归方法。这将帮助我们在不使用堆栈数据结构的情况下解决问题。在实现中,我们知道函数的递归将遵循内部堆栈。我们将使

  • 我可以运行这个程序,但由于某些原因,它会显示/放置随机字符,而不是二进制的初始值,而且我似乎无法将程序从十进制运行回二进制。我该如何改进这些代码。要明确说明它不会将二进制转换为十进制,我将如何将其转换回十进制转换为二进制,如果有一些代码可以帮助我,将不胜感激。

  • 问题内容: 我有一个家庭作业,需要在十进制,二进制和十六进制之间进行三向转换。我需要帮助的功能是将十进制转换为十六进制。我几乎不了解十六进制,但是如何将十进制转换为十六进制。我需要一个接受并返回的函数。不幸的是我没有此功能的任何草稿,我完全迷路了。我只有这个。 另外,我不能使用诸如Integer.toHexString()之类的预制函数或任何其他东西,我需要真正地制作算法,否则我什么都不会学。 问

  • 在你学习计算机的过程中,你可能已经接触了二进制。二进制在计算机科学中是很重要的,因为存储在计算机内的所有值都是以 0 和 1 存储的。如果没有能力在二进制数和普通字符串之间转换,我们与计算机之间的交互非常棘手。 整数值是常见的数据项。他们一直用于计算机程序和计算。我们在数学课上学习它们,当然最后用十进制或者基数 10 来表示它们。十进制 $$233_{10}$$ 以及对应的二进制表示 $$1110

  • 我有下面的java代码,它接受RGB颜色的三个双倍值(0和1之间)并将它们转换为十进制格式。我明白了第一个8位如何保存颜色x,第二个8位颜色y...以及如何从结果二进制中获得十进制值。我100%不明白的是为什么我们用255乘以(我知道128 64 32 16 8 4 2 1)。我们到底从用255乘以双倍值得到了什么。它是一个可以存储在8位中的值吗?为什么我们不使用256(一种颜色的可能数量)? 谢

  • 本文向大家介绍Python中的十进制到二进制列表转换,包括了Python中的十进制到二进制列表转换的使用技巧和注意事项,需要的朋友参考一下 Python是一种通用语言,可以处理数据处理过程中提出的许多要求。当我们需要将十进制数转换为二进制数时,可以使用以下python程序。 使用格式 我们可以使用格式化程序中的字母来表示哪个数字基:十进制,十六进制,八进制或二进制,我们希望对数字进行格式化。在下面