Java程序不使用算术运算符将两个数字相加
在这里,我们需要编写一个函数来返回两个指定整数之和。并且该函数不得使用任何算术运算运算符,例如 +、++、-、-、.. 等)。通过简单地使用“+”运算符来计算总和,从而简单地打印和显示结果,这将是一个非常基本的初级程序。但是,如果我们不限制不使用任何算术运算运算符,那么只有一种方法是使用XOR运算符,它可以对两个给定的位执行加法运算。对于进位位,我们可以使用AND (&)运算符。
它是使用按位运算符的。这里我们将主要使用以下三种操作:
- 按位异或
- 按位与
- 按位左移运算符
首先,将数字转换为二进制格式。考虑整数数据类型的 8 个索引。现在进位由按位左移运算符处理,二进制的其余部分作为整数显示在屏幕上,表示上述两个整数的总和。如下图所示:
Input : 1, 2
Output : 3
a = 1 : 00000001
b = 2 : 00000010
----------------
c = 3 : 00000011
执行:
例子
Java
// Java Program to find the Sum of Two Numbers
// Without Using any Arithmetic Operator
// Importing input output classes
import java.io.*;
// Main class
class GFG {
// Method to sum two integer elements
static int Sum(int a, int b)
{
// Iterating until there is no carry
while (b != 0) {
// Using AND operator
int carry = a & b;
// Using XOR operator
a = a ^ b;
// Shifting the carry by one so that
// adding it to the integer 'a'
// gives the desired output
b = carry << 1;
}
return a;
}
// Method 2
// Main driver method
public static void main(String arg[])
{
// Print the sum of custom integer numbers to be
// summed up passed as an argunts
System.out.println(Sum(2, 3));
}
}
输出
5