Java에서 두 숫자의 추가를 구현하는 방법은 무엇입니까?



이 기사에서는 데모와 함께 Java에서 두 숫자를 추가하는 간단하지만 중요한 개념을 소개합니다.

이 기사에서는 Java에서 두 개의 숫자를 추가하는 간단하면서도 중요한 개념을 소개합니다. 그러나 계속 진행하기 전에 'Java 란 무엇입니까', Java의 기능 및 이전에서 찾을 수있는 시스템에 Java를 설치하는 방법에 대해 알아 두는 것이 좋습니다. . 이렇게하면 향후 개념을 빠르고 쉽게 파악할 수 있습니다. 이 Java 튜토리얼 시리즈의 다른 블로그는 전문가는 Java 및 J2EE의 모든 중요한 주제를 심도있게 다룹니다.

이 기사에서는 다음 사항을 다룰 것입니다.





그럼 시작하겠습니다.

자바에서 두 숫자 더하기

방법 1

화면에 '두 숫자 더하기'를 출력하는 프로그램을 자바로 개발하여 직접 이해해 봅시다.



Class AddTwoNumbers {public static void main (String [] args) {System.out.println (“2 개의 숫자 더하기 10 + 20은”+ (10 + 20))}}

산출

출력-Java에서 두 숫자 추가-Edureka

우리는 이것을 이해해야합니다. 여기에 숫자가 추가되면 10 + 20, 즉 30이됩니다.하지만 콘솔에서 숫자를 얻는 것은 무엇입니까? 이 경우 값은 변수에 저장됩니다. Java 측면에서 문자열 배열 변수는 색인을 기반으로 해당 숫자를 저장합니다.



public class Main {public static void main (String [] args) {System.out.println ( 'Addition of two numbers'+ args [0] + '+'+ args [1] + 'is'+ (args [0 ] + 인수 [1]))}}

이에 대한 출력은 10과 20이라는 동일한 숫자를 전달할 때 Console에 표시되는 것과 같습니다.

어, 여기서 얻은 결과는 30이 아닙니다. String [] args를 기억하십시오. 콘솔에서 가져온 모든 입력은 String으로 표현됩니다. 그래서 여기서 우리는 더하기를 계산하기 위해 그 문자열들을 정수로 변환해야합니다.

public class Main {public static void main (String [] args) {//System.out.println('Addition of two numbers '+ args [0] +'+ '+ args [1] +'is '+ (args [0] + args [1])) System.out.println ( '두 숫자 더하기'+ args [0] + '+'+ args [1] + '는'+ (Integer.parseInt (args [0] ) + Integer.parseInt (args [1])))}}

산출

이제 원하는 출력이 우리가 원하는 것입니다. 그것은 10을 더한 것이고 20은 우리가 String에서 Integer로 파싱 한 후 30입니다.

자바에서 두 숫자 추가에 대한이 기사의 다음

방법 2

  1. 빼기 연산자 사용: 빼기를 사용하여 두 개의 숫자를 더하여 음의 값을 부정하여 결과적으로 더해질 수 있습니다.

public class AddTwoNumbers {public static int add (int a, int b) {return a – (-b)} public static void main (String [] args) {System.out.println (add (10, 20)) System. out.println (add (-10, 20))}}

Ouput

30

10

자바에서 두 숫자 추가에 대한이 기사의 다음

반복 단항 연산자

여기에는 while 루프가 포함되며, 기본 개념은 첫 번째 피연산자의 값을 0으로 만드는 것입니다. 그리고 같은 양의 반복으로 해당 두 번째 피연산자를 계속 소리를 지르는 것입니다. 아래 예를 직접 고려하십시오.

public class HelloWorld {public static void main (String [] args) {System.out.println ( 'add'+ add (10, 20)) System.out.println ( 'add'+ add (-10, 20)) } public static int add (int a, int b) {//System.out.println ( '--->'+ a + ':'+ b) while (a> 0) {//System.out.println ( 'while a> 0 --->'+ a + ':'+ b) b ++ a--} while (a<0) { //System.out.println('while a ' + a + ' : ' + b) b-- a++ } //System.out.println('return b--->'+ a +': '+ b) b를 반환}}

Ouput

$ javac HelloWorld.java $ java -Xmx128M -Xms16M HelloWorld add 30 add 10

자바에서 두 숫자 추가에 대한이 기사의 다음

Java의 비트 및 비트 시프트 연산자

XOR 비트 연산자를 사용하여 두 정수를 더할 수도 있고 AND 연산자로 캐리를 얻을 수 있습니다. 합계에 캐리를 추가하려면 부호있는 왼쪽 시프트 연산자를 사용해야합니다. 어떻게 되나요? 먼저 예를 살펴 보겠습니다.

public class HelloWorld {public static void main (String [] args) {System.out.println ( 'Addition using + ve'+ addUsingBits (10, 20)) System.out.println ( 'Addition using -ve'+ addUsingBits ( -10, 20))} public static int addUsingBits (int a, int b) {while (b! = 0) {int carry = (a & b) a = a ^ bb = carry<< 1 } return a } }

산출

$ javac HelloWorld.java

$ java -Xmx128M -Xms16M HelloWorld

+ ve 30을 사용한 더하기

-ve 10을 사용한 추가

XOR 연산은 2 비트의 추가를 평가하는 데 사용된다는 점을 항상 기억하십시오. AND 연산은 2 비트의 캐리를 평가하는 데 사용됩니다. 이걸 해부 해볼까요? 입력 값으로 이동하여 첫 번째 조건에 대해 a = 10 및 b = 20을 취하겠습니다.

조작

배열의 자바 스크립트 길이

식 평가

바이너리 등가

소수점 값

...에

10

00001010

10

스물

00010100

스물

동안 (b! = 0)

진실

int 캐리 = (a & b)

10 및 20

0

0

a = a ^ b

10 ^ 20

00011110

30

b = 캐리<< 1

0<< 1

0

0

반환

30

00011110

30

이제 음의 입력을 받아 a에 -10이라고합시다. 아래 표에서 어떤 일이 발생하는지 살펴 보겠습니다.이것은 carry의 십진수 값이 음수가 될 때까지 반복합니다.

자바에서 두 숫자 추가에 대한이 기사의 다음

초기 루프 테이블

조작

식 평가

바이너리 등가

소수점 값

...에

-10

11110110

-10

스물

00010100

스물

동안 (b! = 0)

진실

int 캐리 = (a & b)

-10 및 20

00010100

스물

a = a ^ b

-10 ^ 20

11100010

-30

b = 캐리<< 1

스물<< 1

00101000

40

루프 1.

조작

식 평가

바이너리 등가

소수점 값

...에

-30

11100010

-30

40

00101000

40

동안 (b! = 0)

진실

int 캐리 = (a & b)

-30 및 40

00100000

32

a = a ^ b

-30 ^ 40

11001010

-54

b = 캐리<< 1

32<< 1

00101000

64

그래서 모든 결과가 여기에 표시되는 것은 아닙니다. 따라서 아래 표는이 작업의 마지막 루프를 나타냅니다.

조작

식 평가

바이너리 등가

소수점 값

...에

-2147483638

111111111111111111111111111110000000000000000000000000001010

-2147483638

-2147483648

111111111111111111111111111110000000000000000000000000000000

-2147483648

동안 (b! = 0)

진실

int 캐리 = (a & b)

-2147483638 및 -2147483648

111111111111111111111111111110000000000000000000000000000000

-2147483648

a = a ^ b

-2147483638 ^ -2147483648

00001010

10

b = 캐리<< 1

-2147483648<< 1

0

0

반환

10

00001010

10

이것이 덧셈이 계산 된 방법입니다. 휴! 생각에 너무 많이. 이 계산이 주로 이진 계산과 같이 인간에 의해 수동으로 수행되었다고 생각하십시오.

자바에서 두 숫자 추가에 대한이 기사의 다음

재귀

재귀를 사용하여 위의 프로그램을 작성할 수도 있습니다. 계산 부분이 약간 다릅니다. 숙제를 고려해 보겠습니다. 여기서 재귀에 대한 추출을 제공하고 내부적으로 작동하는 방식을 알 수 있도록 자체 테이블을 작성하려고합니다. 또한 여기에서 내부 작업에 흥미를 느끼지 않는 한 표현 목적으로 만이 모든 것을 처리 할 필요가 없습니다.

예제 프로그램을 사용한 C ++의 동적 메모리 할당
public static int addUsingRecursion (int a, int b) {if (b == 0) return a int sum = a ^ b int carry = (a & b)<< 1 return add(sum, carry) }

이것은 + 연산자를 사용하고 + 연산자를 사용하지 않고 Java에서 두 숫자를 추가하기위한 것입니다. 둘 중 하나를 선택하는 이유는 전적으로 프로젝트 요구 사항과 요구 사항에 따라 다릅니다.

성능을 내기 위해 두 시나리오의 작업을 평가하고 테스트하지 않았습니다. 로켓을 만들고 우주로 보내야만 효과가있을 것 같아요.

간결성을 위해 자체 메모리 제한이있는 정수 관련 숫자 만 설명했습니다. float, double 등을 사용하여 더 자세히 살펴 보도록하겠습니다. 기본 유형의 한계 값을 초과하면 결과가 다른 답을 표시한다는 점을 항상 기억하십시오.

확인 전 세계에 250,000 명 이상의 만족 한 학습자 네트워크를 보유한 신뢰할 수있는 온라인 학습 회사 인 Edureka에서 우리는 당신의 여정의 모든 단계에서 당신을 돕기 위해 여기에 있습니다. 당신의 최고가되기 위해 우리는 Java 개발자가 되고자하는 학생과 전문가를 위해 고안된 커리큘럼을 만들었습니다.