繁体   English   中英

如何用Java用二进制进行算术运算?

[英]How to do arithmetic operations in binary with Java?

对于Java分配,我需要能够将通过命令行(无论大小)以字符串形式引入的任何数字传递到二进制文件中。

然后生成允许这些数字相加,相乘,相减和相除的方法。

我的问题是第一:

如何将我的字符串转换为二进制

例如:

123会变成1111011

8403678将成为100000000011101011011110

依此类推...

然后最大的问题是让它们相加,相减等等。

最后,我需要能够将结果从二进制转换回十进制,与上一种情况(从二进制转换为十进制字符串)相比,我在理解操作方法上遇到更多麻烦。

例如:

如果将1111011添加到100000000011101011011110,结果将是100000000011101101011001,然后它将变成8403801,我将其打印出来。

该项目的最终目的是创建我们自己的类,例如java.math.BigInteger(当然不使用它)并处理任意大的数字(大于Int可以处理的数字)。

如果需要任何其他信息,请告诉我,我会及时答复。

由于必须能够在不使用BigInteger的情况下处理大数,因此需要找到一种表示任意大数的方法。 显然int不会。 一种简单的方法是将数字表示为字符串。 例如,数字123可以存储为字符串“ 123”。

转换为二进制将需要一些中间操作,例如除法和取模。 因此,当您将数字存储在字符串中时,值得思考如何执行这些操作。 由于这是家庭作业,因此我不想仅给您答案,而是提供一些指导。

假设您要添加。

  1. 想想如何手工加大数。 您使用每个数字的哪个数字,以及如何操纵它们以获得答案? 该算法非常简单,一旦您可以解释它,就可以给出计算机指导。 (此外,您需要先添加一个数字,然后再添加十个数字,等等...如果需要,请记住携带!)
  2. 请注意,您可以使用诸如charAt(int n)类的方法来获取数字String的数字。 这将返回字符串索引n处的字符。 通过使用Integer.parseInt()将其转换为Integer(它将接受数字字符串并将其转换为整数)。
  3. 所以现在您可以考虑:如果我想要一个数字,那么字符串中的索引是什么? 从此开始,您应该能够弄清楚如何从大数字字符串中获取所需的任何数字。 现在,您可以实现算法。

最后,要将十进制转换为二进制,您确实需要了解数字基的工作原理。 这给出了清晰而快速的介绍: http : //www.math.grin.edu/~rebelsky/Courses/152/97F/Readings/student-binary上面链接中的“从十进制转换为二进制”一节介绍了一种方法正是您想要的。 祝好运。

暂无
暂无

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

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