[英]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”。
转换为二进制将需要一些中间操作,例如除法和取模。 因此,当您将数字存储在字符串中时,值得思考如何执行这些操作。 由于这是家庭作业,因此我不想仅给您答案,而是提供一些指导。
假设您要添加。
charAt(int n)
类的方法来获取数字String的数字。 这将返回字符串索引n处的字符。 通过使用Integer.parseInt()
将其转换为Integer(它将接受数字字符串并将其转换为整数)。 最后,要将十进制转换为二进制,您确实需要了解数字基的工作原理。 这给出了清晰而快速的介绍: http : //www.math.grin.edu/~rebelsky/Courses/152/97F/Readings/student-binary上面链接中的“从十进制转换为二进制”一节介绍了一种方法正是您想要的。 祝好运。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.