📌  相关文章
📜  Java程序不使用算术运算符将两个数字相加

📅  最后修改于: 2022-05-13 01:55:44.869000             🧑  作者: Mango

Java程序不使用算术运算符将两个数字相加

在这里,我们需要编写一个函数来返回两个指定整数之和。并且该函数不得使用任何算术运算运算符,例如 +、++、-、-、.. 等)。通过简单地使用“+”运算符来计算总和,从而简单地打印和显示结果,这将是一个非常基本的初级程序。但是,如果我们不限制不使用任何算术运算运算符,那么只有一种方法是使用XOR运算符,它可以对两个给定的位执行加法运算。对于进位位我们可以使用AND (&)运算符。

它是使用按位运算符的。这里我们将主要使用以下三种操作:

  1. 按位异或
  2. 按位与
  3. 按位左移运算符

首先,将数字转换为二进制格式。考虑整数数据类型的 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