ในบทความนี้ฉันจะแนะนำให้คุณรู้จักกับแนวคิดที่เรียบง่าย แต่สำคัญนั่นคือการเพิ่มตัวเลขสองตัวใน Java แต่ก่อนที่จะก้าวไปข้างหน้าฉันขอแนะนำให้คุณทำความคุ้นเคยกับ“ Java คืออะไร” คุณสมบัติของ Java และวิธีติดตั้ง Java บนระบบของคุณซึ่งคุณสามารถพบได้ในก่อนหน้านี้ . สิ่งนี้จะช่วยให้คุณคว้าแนวคิดที่กำลังจะมาได้อย่างรวดเร็วและง่ายดาย บล็อกอื่น ๆ ในชุดการสอน Java นี้เขียนโดย ผู้เชี่ยวชาญจะครอบคลุมหัวข้อสำคัญทั้งหมดของ Java & J2EE ในเชิงลึก
คำแนะนำต่อไปนี้จะกล่าวถึงในบทความนี้
- วิธีที่ 1
- วิธีที่ 2
- ตัวดำเนินการ Unary ซ้ำ
- ตารางลูปเริ่มต้น
- ตัวดำเนินการ Bitwise และ Bitshift ใน Java
- การเรียกซ้ำ
มาเริ่มกันเลย
การเพิ่มตัวเลขสองตัวใน Java
วิธีที่ 1
มาทำความเข้าใจโดยตรงโดยการพัฒนาโปรแกรมใน Java เพื่อพิมพ์“ การบวกตัวเลขสองตัว” บนหน้าจอ
Class AddTwoNumbers {public static void main (String [] args) {System.out.println (“ การบวกเลขสองตัว 10 + 20 คือ” + (10 + 20))}}
เอาต์พุต
เราต้องเข้าใจว่านี่คือตัวเลขที่เพิ่มโดยตรงบอกว่า 10 + 20 นั่นคือ 30 แต่สิ่งที่เราได้รับตัวเลขจากคอนโซล ในกรณีนี้ค่าจะถูกเก็บไว้ในตัวแปร ในแง่ของ Java ตัวแปร String array จะจัดเก็บตัวเลขเหล่านั้นตามดัชนี
คลาสสาธารณะ Main {public static void main (String [] args) {System.out.println ('การเพิ่มของสองจำนวน' + args [0] + '+' + args [1] + 'is' + (args [0 ] + args [1]))}}
ผลลัพธ์สำหรับสิ่งนี้จะเป็นดังที่แสดงในคอนโซลเมื่อเราส่งหมายเลขเดียวกันนั่นคือ 10 และ 20
เอ๊ะผลลัพธ์ที่เราได้มานี้ไม่ต้องการ 30. Remember String [] args ทุกอินพุตที่คุณรับจากคอนโซลจะแสดงใน String ดังนั้นที่นี่เราต้องแปลง Strings เหล่านั้นเป็น Integer เพื่อคำนวณการเพิ่ม
คลาสสาธารณะ 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] + 'is' + (Integer.parseInt (args [0] ) + Integer.parseInt (args [1])))}}
เอาต์พุต
ตอนนี้ผลลัพธ์ที่ต้องการคือสิ่งที่เราต้องการ นั่นคือการเพิ่ม 10 และ 20 คือ 30 หลังจากที่เราแยกวิเคราะห์จาก String เป็น Integer
ถัดไปในบทความนี้เกี่ยวกับการเพิ่มตัวเลขสองตัวใน Java
วิธีที่ 2
การใช้ตัวดำเนินการลบ: เราสามารถใช้การลบเพื่อบวกตัวเลขสองตัวเพื่อที่มันจะลบล้างค่าลบและทำให้เกิดการบวก
คลาสสาธารณะ 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 (เพิ่ม (-10, 20))}}
Ouput
30
10
ถัดไปในบทความนี้เกี่ยวกับการเพิ่มตัวเลขสองตัวใน Java
ตัวดำเนินการ Unary ซ้ำ
สิ่งนี้เกี่ยวข้องกับ while loop แนวคิดพื้นฐานเบื้องหลังสิ่งนี้คือการทำให้ค่าของตัวถูกดำเนินการตัวแรกเป็นศูนย์ และเพื่อให้เกิดการเพิ่มตัวถูกดำเนินการที่สองที่สอดคล้องกันโดยการวนซ้ำจำนวนเท่ากัน ลองพิจารณาตัวอย่างด้านล่างด้วยตัวคุณเอง
คลาสสาธารณะ HelloWorld {public static void main (String [] args) {System.out.println ('add' + add (10, 20)) System.out.println ('add' + add (-10, 20)) } การเพิ่ม int คงที่สาธารณะ (int a, int b) {//System.out.println ('--->' + a + ':' + b) ในขณะที่ (a> 0) {//System.out.println ('while a> 0 --->' + a + ':' + b) b ++ a--} while (ก<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 เพิ่ม 30 เพิ่ม 10
ถัดไปในบทความนี้เกี่ยวกับการเพิ่มตัวเลขสองตัวใน Java
ตัวดำเนินการ Bitwise และ Bitshift ใน Java
นอกจากนี้เรายังสามารถเพิ่มจำนวนเต็มสองจำนวนได้โดยใช้ตัวดำเนินการ XOR แบบบิตและตัวดำเนินการ AND สามารถรับได้ ในการเพิ่มยอดรวมเราจำเป็นต้องใช้ตัวดำเนินการกะซ้ายที่ลงชื่อ สิ่งนี้เกิดขึ้นได้อย่างไร? ก่อนอื่นมาดูตัวอย่างกัน
คลาสสาธารณะ HelloWorld {public static void main (String [] args) {System.out.println ('การเพิ่มโดยใช้ + ve' + addUsingBits (10, 20)) System.out.println ('การเพิ่มโดยใช้ -ve' + addUsingBits ( -10, 20))} 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 ใช้เพื่อประเมินการเพิ่มของสองบิต การดำเนินการ AND ใช้เพื่อประเมินการพกพาของสองบิต เราจะผ่าสิ่งนี้ออกไป? ไปตามค่าอินพุตลองใช้ 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 |
ทีนี้ลองป้อนข้อมูลเชิงลบพูดว่า -10 สำหรับ a. ลองตรวจสอบสิ่งที่เกิดขึ้นในตารางด้านล่างสิ่งนี้ทำให้เราวนซ้ำได้จนกว่าค่าทศนิยมของ carry จะเป็นลบ
ถัดไปในบทความนี้เกี่ยวกับการเพิ่มตัวเลขสองตัวใน Java
ตารางลูปเริ่มต้น
การดำเนินการ | การประเมินนิพจน์ | เทียบเท่าไบนารี | ค่าทศนิยม |
ถึง | -10 | 11110110 | -10 |
ข | ยี่สิบ สตริงวันที่แปลงเป็น java | 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 |
ไปเรื่อย ๆ & hellip จนกว่าลูปจะกลายเป็น b = 0 สำหรับความกะทัดรัดไม่ได้แสดงผลลัพธ์ทั้งหมดที่นี่ ตารางด้านล่างแสดงถึงลูปสุดท้ายในการดำเนินการนี้
ฟังก์ชันสมาชิกคง c ++
การดำเนินการ | การประเมินนิพจน์ | เทียบเท่าไบนารี | ค่าทศนิยม |
ถึง | -2147483638 | 1111111111111111111111111110000000000000000000000000001010 | -2147483638 |
ข | -2147483648 | 11111111111111111111111111100000000000000000000000000000000000 | -2147483648 |
ในขณะที่ (b! = 0) | จริง | ||
int พก = (a & b) | -2147483638 และ -2147483648 | 11111111111111111111111111100000000000000000000000000000000000 | -2147483648 |
a = a ^ b | -2147483638 ^ -2147483648 | 00001010 | 10 |
b = พก<< 1 | -2147483648<< 1 | 0 | 0 |
กลับก | 10 | 00001010 | 10 |
นั่นคือวิธีคำนวณการเพิ่ม วุ้ย มากสำหรับความคิด ลองคิดดูว่าการคำนวณนี้ทำได้ด้วยตนเองโดยมนุษย์หรือไม่โดยส่วนใหญ่เป็นการคำนวณแบบไบนารี
ถัดไปในบทความนี้เกี่ยวกับการเพิ่มตัวเลขสองตัวใน Java
การเรียกซ้ำ
เราสามารถเขียนโปรแกรมข้างต้นโดยใช้การเรียกซ้ำได้เช่นกัน ส่วนการคำนวณแตกต่างกันเล็กน้อยลองพิจารณาสิ่งนี้สำหรับการบ้านสำหรับคุณเราจะ? ฉันจะให้สารสกัดที่นี่สำหรับการเรียกซ้ำและคุณพยายามสร้างตารางของคุณเองเพื่อให้คุณรู้ว่ามันทำงานอย่างไรภายใน นอกจากนี้ไม่จำเป็นต้องทิ้งสิ่งเหล่านี้ทั้งหมดที่มีไว้เพื่อวัตถุประสงค์ในการเป็นตัวแทนเท่านั้นเว้นแต่คุณจะรู้สึกตื่นเต้นกับการทำงานภายในที่นี่
int สาธารณะคงที่ addUsingRecursion (int a, int b) {if (b == 0) ส่งคืน int sum = a ^ b int carry = (a & b)<< 1 return add(sum, carry) }
ทั้งหมดนี้เป็นเพียงการเพิ่มตัวเลขสองตัวใน Java โดยใช้ตัวดำเนินการ + และไม่ใช้ตัวดำเนินการ + เหตุผลเบื้องหลังการดำเนินการอย่างใดอย่างหนึ่งจะขึ้นอยู่กับความต้องการและความต้องการของโครงการ
ฉันยังไม่ได้ประเมินและทดสอบการทำงานของทั้งสองสถานการณ์เพื่อให้ได้ประสิทธิภาพ ฉันเดาว่าจะมีผลก็ต่อเมื่อคุณสร้างจรวดและส่งไปอวกาศ
ฉันได้อธิบายเฉพาะตัวเลขที่เกี่ยวข้องกับจำนวนเต็มเพื่อความกะทัดรัดซึ่งมีขีด จำกัด หน่วยความจำของตัวเอง ฉันฝากไว้ให้คุณสำรวจเพิ่มเติมโดยใช้ float, double และอื่น ๆ จำไว้เสมอว่าถ้าคุณเกินค่า จำกัด ของประเภทดั้งเดิมผลลัพธ์จะแสดงคำตอบที่แตกต่าง
ตรวจสอบไฟล์ โดย Edureka บริษัท การเรียนรู้ออนไลน์ที่เชื่อถือได้ซึ่งมีเครือข่ายผู้เรียนที่พึงพอใจมากกว่า 250,000 คนกระจายอยู่ทั่วโลก เราอยู่ที่นี่เพื่อช่วยเหลือคุณในทุกขั้นตอนในการเดินทางของคุณเพื่อการเป็นที่ดีที่สุดของคุณเรามาพร้อมกับหลักสูตรที่ออกแบบมาสำหรับนักเรียนและมืออาชีพที่ต้องการเป็น Java Developer