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

在Java中使用模运算符将用户输入从二进制转换为十进制

龙安阳
2023-03-14

我很难找到编程1课作业的答案。赋值是提示用户以二进制输入(最多4位),并将其转换为十进制等效值。不允许使用循环、条件语句、ParseInt以及除模运算符和其他数学运算符以外的任何其他运算符。

我在数学方面遇到了麻烦,我想一旦我理解了如何使用模数运算符来回答这个问题,我就可以为它编写代码了。

我已经搜索过了,但没有找到任何能够帮助我的东西。

共有1个答案

洪德寿
2023-03-14

您应该获得每个位置的数值,并使用2的幂将它们相加,以恢复原始数值。

    double num = 1110;
    double ones = Math.floor(num % 10);
    double tens = Math.floor(num/10 % 10);
    double hundreds = Math.floor(num/100 % 10);
    double thousands = Math.floor(num %10000 /1000);
    double tenThousands = Math.floor(num / 10000 % 10);

    double original = (ones * 1) +
                      (tens * 2) + 
                      (hundreds * 4) +
                      (thousands * 8);


    System.out.println(num);
    System.out.println("ones: " +ones);
    System.out.println("tens: " +tens);
    System.out.println("hundreds: " +hundreds);
    System.out.println("thousands: " + thousands);
    System.out.println("original number : " + original);
 类似资料:
  • 用户用十六进制或二进制输入一个数字(必须以0x或0b为前缀,如果没有给出错误信息) 我不能用基数,我只是用整数。parseInt(s) 我不知道怎样才能使这个计划奏效。。请帮帮我,我还缺什么?

  • 问题内容: 我正在尝试编写将数字转换为二进制的代码,这就是我写的。它给了我一些我不理解的Eclipse错误。怎么了 还有其他建议吗?我想学习并听取任何修复建议。谢谢。 错误消息: 类型中的方法不适用于参数() 这行有多个标记 令牌“ ”的语法错误,;; 预期 令牌“ ”的语法错误,;; 预期 是变量的无效类型 这行有多个标记 令牌“ mod”的语法错误,无效的AssignmentOperator

  • 我想知道如何将舞蹈方法的十进制结果包含到灯光方法中。例如,在这个程序中,如果我输入5F,十进制结果将是95。我希望95在light方法中显示为静态int变量,以便转换为二进制数。如果你能告诉我如何将十六进制数限制在2位数以内,那也会很有帮助。感谢阅读! } }

  • 我编写了简单的java代码将十进制转换为8位二进制:很抱歉这个愚蠢的问题 //int j=8-结果。长度();//对于(int i=0;i 结果是:dec长度为:1****反转前8位:10000 8位表示:00001 但当我删除第13行时(结果=0;)编译器打印7星号(*),原因是什么?每次都会更新结果的长度

  • 我正在尝试使用BigInteger类从二进制数打印十进制数。我正在使用BigInteger类的BigInteger(String val,int radix)构造函数将给定的二进制值转换为十进制值,但它打印的是构造函数中传递的精确二进制值。WAHT是错误吗?代码如下:

  • 我正在尝试将数字从十进制值转换为其IEEE 752形式。例如: 我写了这个方法: 有个问题我解决不了,我再举个例子说清楚。 但是当数字为负数时,例如 我收到以下错误: 这意味着我的代码可以完美地处理正数(包括零),但如果是负数,代码就会崩溃。问题出在哪里? 笔记 我想我可以用这种方式解决我的问题 检查是否有一个字符At(0)等于1 如果是(numero.charAt(0)==1),则删除第一个字符