แนะนำ, 2024

ตัวเลือกของบรรณาธิการ

ความแตกต่างระหว่าง int และ long

ชนิดข้อมูล int และ long เป็นชนิดข้อมูลจำนวนเต็มสองชนิดที่อธิบายไว้ใน Java ใน Java ชนิดของ int และ long จะถูกเซ็นชื่อ + ve และ -ve ค่า Java ไม่รองรับประเภท int และ long ที่ไม่ได้ลงชื่อ ความแตกต่างพื้นฐานระหว่างชนิดข้อมูล int และ long คือความกว้างของแต่ละประเภท ประเภทข้อมูล int มีความกว้าง 32 บิตสำหรับตัวแปรประเภท int ในทางกลับกันชนิดข้อมูลยาวมีความกว้าง 64- บิตสำหรับตัวแปรชนิดยาว แผนภูมิเปรียบเทียบด้านล่างแสดงความแตกต่างอื่น ๆ ระหว่าง int และ long

แผนภูมิเปรียบเทียบ

พื้นฐานสำหรับการเปรียบเทียบintยาว
ขั้นพื้นฐานประเภทข้อมูล int เป็น 32- บิตชนิดข้อมูลยาวเป็น 64- บิต
ไบต์หากนับเป็นไบต์ int จะเท่ากับ 4 ไบต์หากนับเป็นไบต์ความยาวจะเท่ากับ 8 ไบต์
พิสัยใน Java ช่วงของประเภท int คือ –2, 147, 483, 648 ถึง 2, 147, 483, 647ในชวาช่วงของชนิดความยาวคือ
–9, 223, 372, 036, 854, 775, 808 ถึง 9, 223, 372, 036, 854, 775, 807
คำหลักคำหลักที่ใช้ในการประกาศตัวแปรประเภท int คือ "int"คำหลักที่ใช้ในการประกาศตัวแปรชนิดยาวคือ "ยาว"
หน่วยความจำหน่วยความจำที่จำเป็นในการจัดเก็บตัวแปร int น้อยกว่าเมื่อเปรียบเทียบกับความยาวหน่วยความจำที่จำเป็นสำหรับการจัดเก็บตัวแปรแบบยาวนั้นใหญ่กว่าเมื่อเปรียบเทียบกับ int

คำจำกัดความของประเภท int

int ชนิดข้อมูลเป็นชนิดข้อมูลที่ใช้กันมากที่สุดซึ่งเก็บค่าจำนวนเต็มในนั้น ค่าที่ตัวแปร int สามารถเก็บได้นั้นไม่สั้นเกินไปและไม่ยาวเกินไป โดยทั่วไปแล้วค่าของตัวแปร int จะใช้เป็นตัวแปรลูปซึ่งควบคุมลูปหรือใช้เป็นตัวแปรดัชนีของอาร์เรย์ ไบต์ชนิดข้อมูลและ short มีช่วงสั้นกว่าเมื่อเปรียบเทียบกับชนิดข้อมูล int แต่ไม่สามารถแทนที่ int ได้แม้ว่าค่าของตัวแปร int จะอยู่ในช่วงที่สั้นลง เหตุผลที่อยู่เบื้องหลังคือเมื่อเราใช้ data type byte และ short ใน expression แล้วในขณะที่ประเมิน expression นั้น data type byte และ short จะได้รับการเลื่อนระดับเป็น int โดยคอมไพเลอร์ ดังนั้นจากนี้จึงอาจกล่าวได้ว่าเป็นการดีกว่าที่จะใช้ int เมื่อต้องการจำนวนเต็ม
ลองมาดูการใช้งานประเภทข้อมูล

 ไบต์ a = 70; ไบต์ b = 80; int c = a * b; // ไม่มีข้อผิดพลาด ไบต์ d = a + 10; // ข้อผิดพลาดในการคอมไพล์เวลา 

ในขณะที่คุณสามารถสังเกตเห็นในโค้ดข้างต้นทั้งสองตัวแปรไบต์ a และ b มีค่า 70 และ 80 ซึ่งเป็นค่าไบต์ที่ถูกต้อง แต่ผลลัพธ์ระดับกลางของ a * b; เกินขีด จำกัด ของไบต์ ดังนั้นคอมไพเลอร์จะส่งเสริมตัวแปรไบต์สั้นและถ่านโดยอัตโนมัติเพื่อพิมพ์ int หากพวกเขาจะใช้ในการแสดงออก ตอนนี้คุณสามารถเห็นได้ว่าผลลัพธ์ของ a * b ถูกกำหนดให้กับตัวแปร int ซึ่งไม่ทำให้เกิดข้อผิดพลาดและการคอมไพล์ได้อย่างราบรื่นเพราะตัวแปร a และ b ได้รับการเลื่อนตำแหน่งให้เป็นประเภท int และการกำหนดประเภท int ให้กับ type int ไม่ ' ไม่ทำให้เกิดข้อผิดพลาด

ในบรรทัดสุดท้ายของโค้ดคุณสามารถเห็นนิพจน์โดยที่ค่า 10 ถูกเพิ่มลงในตัวแปรไบต์ 'a' ผลลัพธ์ยังคงไม่เกินขีด จำกัด ของไบต์ แต่การกำหนดผลลัพธ์ระหว่างกลางของนิพจน์“ a + 10” ให้กับตัวแปรไบต์ 'd' ทำให้เกิดข้อผิดพลาดในเวลาคอมไพล์เนื่องจากในขณะที่ตัวแปรไบต์การประเมินผลนิพจน์ 'a' ได้รับการเลื่อนระดับเป็นประเภท int และไม่อนุญาตให้กำหนดประเภท int เป็น type byte ดังนั้นจึงทำให้เกิดข้อผิดพลาดในเวลารวบรวม

ความหมายของประเภทยาว

ความยาวชนิดข้อมูลมีช่วงและความกว้างที่ใหญ่ที่สุดเมื่อเปรียบเทียบกับชนิดไบต์สั้นและ int ใน Java ชนิดแบบยาวเป็นชนิดจำนวนเต็มแบบ 64 บิต ชนิดยาวถูกใช้โดยที่ int ประเภทไม่ใหญ่พอที่จะเก็บค่าที่ต้องการ ช่วงยาวคือ –9, 223, 372, 036, 854, 775, 808 ถึง 9, 223, 372, 036, 854, 775, 807 ซึ่งค่อนข้างใหญ่เพื่อเก็บค่าที่มากกว่าเช่นจำนวนเต็มจำนวนมาก เราสามารถเข้าใจประเภทที่มีความยาวได้ด้วยตัวอย่างด้านล่าง

 น้ำหนักคลาส {โมฆะคงที่สาธารณะหลัก (String args []) {รายการ int; int wt_per_item; กรัมยาว กล่องยาว รายการ = 10, 000000 // ระบุรายการตัวเลข wt_per_item = 10, 000; // ระบุน้ำหนักของหนึ่งรายการเป็นกิโลกรัมกรัม = wt_item * 1, 000; // แปลงน้ำหนักเป็นกรัมกล่อง = รายการ * กรัม; // คำนวณน้ำหนักของกล่องเป็นกรัม System.out.println ("จำนวนรายการ" + รายการ); System.out.println ("น้ำหนักต่อรายการ" + wt_per_item + "กิโลกรัม"); System.out.println ("น้ำหนักของกล่องเป็นกรัม" + กล่อง + "กิโลกรัม"); }} จำนวนรายการ 10, 000, 000 น้ำหนักต่อรายการ 10, 000 กิโลกรัมน้ำหนักของกล่องเป็นกรัม 100000000000000 กิโลกรัม 

สังเกตผลลัพธ์ในโค้ดข้างต้น ผลลัพธ์ที่คำนวณได้สำหรับน้ำหนักของกล่องทั้งหมดที่มีกล่องที่มี 10, 000, 000 รายการซึ่งต่อน้ำหนักรายการ 10, 000 กิโลกรัม ค่าที่คำนวณได้สำหรับน้ำหนักของกล่องเป็นกรัมไม่สามารถถือได้โดยตัวแปร int ดังนั้นบางครั้งจำเป็นต้องใช้ชนิดแบบยาวเมื่อค่าขนาดใหญ่ถูกคำนวณหรือพักไว้

ความแตกต่างที่สำคัญระหว่าง int กับ long

  1. ความแตกต่างพื้นฐานระหว่างชนิด int และ long คือความกว้างโดยที่ int คือ 32 บิตและ long คือ 64 บิต
  2. ชนิด int และ long เมื่อนับเป็นไบต์แทนที่จะเป็นบิต type int คือ 4 ไบต์และชนิด long นั้นเป็นสองเท่าถ้า type int คือ 8 ไบต์
  3. ใน Java ช่วงของชนิด int นั้นอยู่ระหว่าง –2, 147, 483, 648 ถึง 2, 147, 483, 647 ในขณะที่ช่วงยาวของประเภท int นั้นอยู่ระหว่าง –9, 223, 372, 036, 854, 775, 804, 775, 804, 775
  4. คำหลักที่ใช้ในการประกาศตัวแปรของ int ชนิดคือ "int" ในทางกลับกันคำสำคัญที่ใช้ในการประกาศตัวแปรชนิด long คือ“ long”
  5. โดยทั่วไปหน่วยความจำที่จำเป็นในการเก็บค่าของประเภท int น้อยกว่าเมื่อเทียบกับความยาว

สรุป:

ในขณะที่เขียนโค้ดหากมีความจำเป็นต้องใช้ค่าช่วงกลางคุณสามารถใช้ชนิด int แต่เมื่อเอาต์พุตที่สร้างโดยนิพจน์ใด ๆ จะใหญ่ขึ้นหรือใช้ค่าขนาดใหญ่กว่าสำหรับการคำนวณแล้วตัวแปรชนิดแบบยาวต้องใช้เพื่อเก็บ ค่า

Top