W tym artykule przedstawię proste, ale ważne pojęcie, jakim jest dodanie dwóch liczb w Javie. Ale zanim przejdziemy dalej, proponuję zapoznać się z „Co to jest Java”, funkcjami Javy i jak zainstalować Javę w systemie, które można znaleźć w poprzednich . Pomoże Ci to szybko i łatwo uchwycić nadchodzące koncepcje. Inne blogi z tej serii samouczków Java napisanych przez naszego eksperci szczegółowo omówią wszystkie ważne tematy dotyczące Java i J2EE,
Poniższe wskazówki zostaną omówione w tym artykule,
- Metoda 1
- Metoda 2
- Powtarzany jednoargumentowy operator
- Początkowa tabela pętli
- Operator Bitwise i Bitshift w Javie
- Rekursja
Więc zacznijmy,
Dodanie dwóch liczb w Javie
Metoda 1
Rozumiemy to bezpośrednio, opracowując program w Javie, który wypisze na ekranie komunikat „Dodawanie dwóch liczb”.
Klasa AddTwoNumbers {public static void main (String [] args) {System.out.println ('Dodanie dwóch liczb 10 + 20 to' + (10 + 20))}}
Wynik
Musimy to zrozumieć, że tutaj liczby są dodawane bezpośrednio, czyli 10 + 20, czyli 30. Ale to, co otrzymujemy, liczby otrzymujemy z konsoli. W takim przypadku wartości będą przechowywane w zmiennej. Jeśli chodzi o język Java, zmienna tablicowa String będzie przechowywać te liczby na podstawie ich indeksu.
public class Main {public static void main (String [] args) {System.out.println ('Dodawanie dwóch liczb' + args [0] + '+' + args [1] + 'is' + (args [0 ] + argumenty [1]))}}
Wynik tego będzie taki, jak pokazano w konsoli, gdy przekażemy tę samą liczbę, czyli 10 i 20.
Ech, otrzymany tutaj wynik nie jest pożądany 30. Pamiętaj, że argumenty String [], każde wejście, które pobierasz z konsoli, jest reprezentowane w ciągu. Więc tutaj musimy przekonwertować te ciągi na liczbę całkowitą, aby obliczyć dodawanie.
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 ('Dodawanie dwóch liczb' + args [0] + '+' + args [1] + 'is' + (Integer.parseInt (args [0]) ) + Integer.parseInt (args [1])))}}
Wynik
Teraz pożądane wyjście jest tym, czego chcemy. To jest dodanie 10, a 20 to 30 po przeanalizowaniu go z String na Integer.
Następnie w tym artykule na temat dodawania dwóch liczb w języku Java
Metoda 2
Korzystanie z operatora odejmowania: Możemy użyć odejmowania, aby dodać dwie liczby w taki sposób, że zaneguje wartość ujemną i spowoduje dodanie.
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
Następnie w tym artykule na temat dodawania dwóch liczb w języku Java
Powtarzany jednoargumentowy operator
Obejmuje to pętlę while, podstawową ideą za tym jest sprowadzenie wartości pierwszego operandu do zera. I aby dalej zwiększać odpowiadający mu drugi operand o taką samą liczbę iteracji. Rozważ sam poniższy przykład.
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) powrót b}}
Ouput
$ javac HelloWorld.java $ java -Xmx128M -Xms16M HelloWorld dodaj 30 dodaj 10
Następnie w tym artykule na temat dodawania dwóch liczb w języku Java
Operator Bitwise i Bitshift w Javie
Możemy również dodać dwie liczby całkowite za pomocą operatora bitowego XOR, a przeniesienie można uzyskać za pomocą operatora AND. Aby dodać przeniesienie do sumy, musimy użyć podpisanego operatora przesunięcia w lewo. Jak to się dzieje? Najpierw zobaczmy przykład.
public class HelloWorld {public static void main (String [] args) {System.out.println ('Dodawanie przy użyciu + ve' + addUsingBits (10, 20)) System.out.println ('Dodawanie przy użyciu -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 } }
Wynik
$ javac HelloWorld.java
$ java -Xmx128M -Xms16M HelloWorld
Dodawanie za pomocą + ve 30
co to jest jframe w java
Dodawanie za pomocą -ve 10
Zawsze pamiętaj, że operacja XOR służy do oszacowania dodania dwóch bitów. Operacja AND służy do oceny przenoszenia dwóch bitów. Rozważmy to, dobrze? Przechodząc przez wartości wejściowe, weźmy a = 10 i b = 20 dla pierwszego warunku.
Operacja | Ocena wyrażenia | Odpowiednik binarny | Wartość dziesiętna |
do | 10 | 00001010 | 10 |
b | dwadzieścia | 00010100 | dwadzieścia |
podczas gdy (b! = 0) | prawdziwe | ||
int carry = (a i b) | 10 i 20 | 0 | 0 |
a = a ^ b | 10 ^ 20 | 00011110 | 30 |
b = nosić<< 1 | 0<< 1 | 0 | 0 |
powrót a | 30 | 00011110 | 30 |
Teraz weźmy ujemne dane wejściowe, powiedzmy -10 dla a. Przyjrzyjmy się poniższej tabeli.To pozwala nam zapętlić się, aż dziesiętna wartość przeniesienia osiągnie ujemną wartość.
Następnie w tym artykule na temat dodawania dwóch liczb w języku Java
Początkowa tabela pętli
Operacja | Ocena wyrażenia | Odpowiednik binarny | Wartość dziesiętna |
do | -10 | 11110110 | -10 |
b | dwadzieścia | 00010100 | dwadzieścia |
podczas gdy (b! = 0) | prawdziwe | ||
int carry = (a i b) | -10 i 20 | 00010100 | dwadzieścia |
a = a ^ b | -10 ^ 20 | 11100010 | -30 |
b = nosić<< 1 | dwadzieścia<< 1 | 00101000 | 40 |
Pętla 1.
Operacja | Ocena wyrażenia | Odpowiednik binarny | Wartość dziesiętna |
do | -30 | 11100010 | -30 |
b | 40 | 00101000 | 40 |
podczas gdy (b! = 0) | prawdziwe | ||
int carry = (a i b) | -30 i 40 | 00100000 | 32 |
a = a ^ b | -30 ^ 40 | 11001010 | -54 |
b = nosić<< 1 | 32<< 1 | 00101000 | 64 |
I tak dalej & hellip, aż pętla okaże się b = 0 dla zwięzłości, nie wszystkie wyniki są tutaj pokazane. Zatem poniższa tabela przedstawia ostatnią pętlę w tej operacji.
Operacja | Ocena wyrażenia | Odpowiednik binarny | Wartość dziesiętna |
do | -2147483638 | 111111111111111111111111111110000000000000000000000000001010 | -2147483638 |
b system.exit (0) java | -2147483648 | 111111111111111111111111111110000000000000000000000000000000 | -2147483648 |
podczas gdy (b! = 0) | prawdziwe | ||
int carry = (a i b) | -2147483638 i -2147483648 | 11111111111111111111111111111110000000000000000000000000000000 | -2147483648 |
a = a ^ b | -2147483638 ^ -2147483648 | 00001010 | 10 |
b = nosić<< 1 | -2147483648<< 1 | 0 | 0 |
powrót a | 10 | 00001010 | 10 |
W ten sposób obliczono dodatek. Uff! tyle za myśl. Pomyśl tylko, czy te obliczenia zostały wykonane ręcznie przez ludzi, głównie obliczenia binarne.
Następnie w tym artykule na temat dodawania dwóch liczb w języku Java
Rekursja
Powyższy program możemy również napisać używając rekurencji. Część obliczeniowa różni się nieco, rozważmy to w ramach pracy domowej, prawda? Podam tutaj fragment rekursji i spróbujesz zbudować własną tabelę, aby wiedzieć, jak to działa wewnętrznie. Nie musisz też grzebać w tym wszystkim tylko w celach reprezentacyjnych, chyba że jesteś podekscytowany wewnętrznymi działaniami tutaj.
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) }
To wszystko było dla dodania dwóch liczb w Javie z użyciem operatora + i bez użycia operatora +. Przyczyna wyboru jednego z nich będzie całkowicie zależeć od potrzeb i wymagań projektu.
Nie oceniałem i nie testowałem działania obu scenariuszy pod kątem wydajności. Myślę, że zadziała to tylko wtedy, gdy zbudujesz rakietę i dostarczysz ją w kosmos.
Dla zwięzłości wyjaśniłem tylko liczby związane z liczbami całkowitymi, które mają swój własny limit pamięci. Pozostawiam ci dalsze badanie za pomocą float, double itp. Zawsze pamiętaj, że jeśli przekroczysz wartość graniczną typów pierwotnych, wynik pokaże inną odpowiedź.
Sprawdź autorstwa Edureka, zaufanej firmy zajmującej się edukacją online, z siecią ponad 250 000 zadowolonych uczniów rozsianych po całym świecie. Jesteśmy tutaj, aby pomóc Ci na każdym etapie Twojej podróży, aby stać się najlepszym, opracowujemy program nauczania przeznaczony dla studentów i profesjonalistów, którzy chcą zostać programistą Java.