如何用Java进行二进制算术运算?
对于Java赋值,我需要能够通过命令行(无论有多大)将作为字符串引入的任何数字传递到二进制文件中 然后生成允许这些数字加、乘、减、除的方法 我的第一个问题是: 如何将字符串转换成二进制 例如: 123将变成1111011 8403678将变成100000001110101011110 等等 然后最大的问题是让它们相加,互相减法,等等 最后,我需要能够将结果从二进制转换回十进制,与前一种情况(从二进制转换为十进制字符串)相比,我在理解如何操作时遇到了更多的困难 例如: 如果将1111011添加到10000000001110101011110,结果将是10000000001110101011001,然后它将成为8403801,我将作为结果打印出来如何用Java进行二进制算术运算?,java,string,math,binary,arithmetic-expressions,Java,String,Math,Binary,Arithmetic Expressions,对于Java赋值,我需要能够通过命令行(无论有多大)将作为字符串引入的任何数字传递到二进制文件中 然后生成允许这些数字加、乘、减、除的方法 我的第一个问题是: 如何将字符串转换成二进制 例如: 123将变成1111011 8403678将变成100000001110101011110 等等 然后最大的问题是让它们相加,互相减法,等等 最后,我需要能够将结果从二进制转换回十进制,与前一种情况(从二进制转换为十进制字符串)相比,我在理解如何操作时遇到了更多的困难 例如: 如果将1111011添加到1
这个项目的最终目标是创建我们自己的类,比如java.math.biginger(当然不使用它),并处理任意大的数字(大于Int可以处理的数字)
如果需要任何额外的信息,请告诉我,我会立即回答。由于您必须能够在不使用BigInteger的情况下处理大数字,因此您需要找到一种表示任意大数字的方法。显然,
int
不行。一种简单的方法是将数字表示为字符串。例如,数字123可以存储为字符串“123”
转换为二进制需要一些中间操作,如除法和模运算。因此,当您的数字存储在字符串中时,值得考虑如何执行这些操作。因为这是家庭作业,我不想给你答案,而是一些指导
说你想做加法
charAt(int n)
等方法获取数字字符串的位数。这将返回字符串索引n处的字符。使用Integer.parseInt()
(获取数字字符串并将其转换为整数)将其转换为整数李>
上面链接中的“从十进制转换为二进制”一节描述了一种方法,可以精确地实现您想要做的事情。祝你好运 看看BigInteger类。它会帮助你开始。在那之后,想想很多被2除的循环,取模2。如果你做这个练习,你必须理解二进制及其算法。只有这样,您才能准备将这些知识转换为Java。网上有很多信息。例如maple:或者这个项目的最终目标是创建我们自己的类,比如java.math.biginger(当然不使用它),并处理任意大的数字(大于Int可以处理的)。