对于Java赋值,我需要能够通过命令行(无论多大)将任何数字作为字符串传递给二进制文件。
然后生成允许这些数字加,乘,减,除的方法。
我的问题首先是:
如何将字符串转换为二进制文件
例如:
123将成为1111011
8403678将成为100000000011101011011110
等等......
然后最大的问题是让他们加起来,相互减去等等。
最后我需要能够将二进制的结果转换回十进制,这比以前的情况(从二进制转换为十进制字符串)更难理解如何做到这一点。
例如:
如果将1111011添加到100000000011101011011110,结果将为100000000011101101011001,然后它将变为8403801,我将打印出来。
这个项目的最终目的是创建我们自己的类,例如java.math.BigInteger(当然不使用它)和处理任意大数字(大于Int可以处理的数字)。
如果需要任何额外信息,请告诉我我会及时回答。
答案 0 :(得分:0)
由于您必须能够在不使用BigInteger的情况下处理大数字,因此您需要找到一种表示任意大数字的方法。显然int
不会这样做。一种简单的方法是将数字表示为字符串。例如,数字123可以存储为字符串“123”。
转换为二进制将需要一些中间操作,例如除法和模数。因此,当您的数字存储在字符串中时,值得考虑如何执行这些操作。由于这是家庭作业,我不想只给你答案,而是一些指导。
假设您想要添加。
charAt(int n)
等方法获取数字字符串的数字。这将返回字符串索引n处的字符。使用Integer.parseInt()
(它接受一个数字字符串并将其转换为整数)将其转换为整数。 最后,要从十进制转换为二进制,您需要了解数字库的工作原理。这给出了清晰而快速的介绍:http://www.math.grin.edu/~rebelsky/Courses/152/97F/Readings/student-binary 上面链接中的“从十进制转换为二进制”部分描述了一种确切的方法。祝好运。