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

ผู้เขียน: Laura McKinney
วันที่สร้าง: 1 เมษายน 2021
วันที่อัปเดต: 13 พฤษภาคม 2024
Anonim
Int16 vs Int32 vs Int64 in C# | C# Interview Questions and Answers | Csharp Interview Questions
วิดีโอ: Int16 vs Int32 vs Int64 in C# | C# Interview Questions and Answers | Csharp Interview Questions

เนื้อหา


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

  1. แผนภูมิเปรียบเทียบ
  2. คำนิยาม
  3. ความแตกต่างที่สำคัญ
  4. ข้อสรุป

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

พื้นฐานสำหรับการเปรียบเทียบ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 เมื่อต้องการจำนวนเต็ม
มาดูการใช้งานประเภทข้อมูล int

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

ในขณะที่คุณสามารถสังเกตเห็นในโค้ดข้างต้นทั้งสองตัวแปรไบต์และ a ประกอบด้วยค่า 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 ซึ่งค่อนข้างใหญ่เพื่อเก็บค่าที่มากกว่าเช่นจำนวนเต็มจำนวนมาก เราสามารถเข้าใจประเภทที่มีความยาวได้ด้วยตัวอย่างด้านล่าง

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

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

  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 ในขณะที่ช่วงของชนิดยาวนั้นมีค่าตั้งแต่ –9,223,372,036,854,775,804,775,804,775,807 ซึ่งมากกว่าประเภท int มาก
  4. คำสำคัญที่ใช้ในการประกาศตัวแปรของ int ชนิดคือ "int" ในทางกลับกันคำสำคัญที่ใช้เพื่อประกาศตัวแปรชนิดยาวคือ“ ยาว”
  5. โดยทั่วไปแล้วหน่วยความจำที่ต้องใช้ในการเก็บค่าประเภท int นั้นน้อยกว่าเมื่อเทียบกับความยาว

สรุป:

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