วิธีแปลง long เป็น int ใน Java

Withi Paelng Long Pen Int Ni Java



ใน Java อาจมีบางสถานการณ์ที่ผู้พัฒนาจำเป็นต้องบันทึกหน่วยความจำอย่างมีประสิทธิภาพ ตัวอย่างเช่น การจัดสรรประเภทข้อมูลที่มีช่วงของค่าที่ค่อนข้างเล็กลง หรือการกำจัดค่าพิเศษออกไป ในกรณีดังกล่าว การแปลง “ ยาว ' ถึง ' int” ใน Java มีผลโดยการปรับปรุงการดำเนินการทางคณิตศาสตร์ ความซับซ้อนของโค้ด และใช้เวลาในการดำเนินการน้อยกว่า

บทความนี้จะอธิบายอย่างละเอียดเกี่ยวกับการแปลง 'long' เป็น 'int' ใน Java

'long' และ 'int' ใน Java คืออะไร

ยาว ” ชนิดในภาษาจาวามีตั้งแต่ “ -9223372036854775808 ' ถึง ' 922337203685477580 ” และได้รับการจัดสรร “ 64 บิต “ นานาชาติ ” ชนิดไรครอง “ 32 ” บิตตั้งแต่ “ -2147483648 ' ถึง ' 2147483647 '. หมายความว่าจำนวน “ นานาชาติ ” สามารถรองรับประเภทได้อย่างง่ายดายด้วย “ ยาว ” แต่ส่วนใหญ่จะไม่เป็นเช่นนั้นเสมอไป







วิธีแปลง 'long' เป็น 'int' โดยใช้ Java

ในการแปลง “ ยาว ' ถึง ' นานาชาติ ” ใน Java ให้ใช้วิธีการต่อไปนี้:



แนวทางที่ 1: แปลง long เป็น int ใน Java โดยใช้วิธี “Math.toIntExact()”

Math.toIntExact() ” วิธีการใน Java ให้ “ นานาชาติ ” มูลค่าจากที่ให้ “ ยาว ' การโต้แย้ง. สามารถใช้วิธีนี้เพื่อผ่าน “ ยาว ” ค่าเป็นอาร์กิวเมนต์และส่งกลับเป็นจำนวนเต็ม



ไวยากรณ์





คณิตศาสตร์ . ถึง IntExact ( ยาว วาล )

ในไวยากรณ์นี้ “ วาลยาว ” หมายถึงค่าที่ต้องส่งคืนเป็น “ นานาชาติ '.

ตัวอย่าง
มาดูภาพรวมตัวอย่างต่อไปนี้:



สาธารณะ ระดับ longtoint2 {
สาธารณะ คงที่ เป็นโมฆะ หลัก ( สตริง [ ] หาเรื่อง ) {
ยาว ทางเลือก1 = 8624675ล ;
ยาว วาล2 = 3482398L ;
นานาชาติ อัพเดทVal1 = คณิตศาสตร์ . ถึง IntExact ( ทางเลือก1 ) ;
นานาชาติ updVal2 = คณิตศาสตร์ . ถึง IntExact ( วาล2 ) ;
ระบบ. ออก . พิมพ์ ( 'ค่าจำนวนเต็มคือ: ' + อัพเดทVal1 ) ;
ระบบ. ออก . พิมพ์ ( 'ค่าจำนวนเต็มคือ: ' + updVal2 ) ;
}
}

ในข้อมูลโค้ดนี้ ให้ทำตามขั้นตอนต่อไปนี้:

  • ประการแรก เริ่มต้นทั้งสอง ' ยาว ” ค่า
  • บันทึก: ที่ระบุ “ แอล ” ในค่าที่แสดงและแยกความแตกต่างของ “ ยาว ” ค่าจาก “ นานาชาติ ” ค่า
  • หลังจากนั้นให้ใช้ “ Math.toIntExact() ” เมธอดสองครั้งและสะสมทั้งค่ายาวที่เริ่มต้นไว้เป็นพารามิเตอร์เพื่อแปลงเป็นจำนวนเต็ม
  • สุดท้าย บันทึกค่าจำนวนเต็มที่แปลงแล้วบนคอนโซล

เอาต์พุต

จากผลลัพธ์ข้างต้น สามารถวิเคราะห์ได้ว่าแสดงค่าจำนวนเต็มที่เกี่ยวข้อง

บันทึก: กระบวนการแปลง (ยาวเป็น int) ทำงานได้ดีเมื่อค่าของ “ ยาว ” น้อยกว่าหรือเท่ากับค่าสูงสุดของ “ นานาชาติ ” เช่น (2147483647) อีกกรณีหนึ่งคือพบข้อผิดพลาดและข้อมูลอาจสูญหายได้เช่นกัน

สาธิต
ลองสังเกตแนวคิดที่กล่าวถึงซึ่งนำไปสู่ข้อจำกัด:

ในตัวอย่างข้างต้น ให้เพิ่มค่าหลัง “ ยาว ” มูลค่าและดำเนินการแปลง ซึ่งจะนำไปสู่การเผชิญหน้ากับ “ จำนวนเต็มล้น ” ข้อ จำกัด เนื่องจากมูลค่าที่แปลงเกิน “ นานาชาติ ” ขีด จำกัด สูงสุด

วิธีที่ 2: แปลง long เป็น int ใน Java โดยใช้ “Narrow Typecasting”

การพิมพ์ ” สอดคล้องกับการกำหนดค่าของข้อมูลดั้งเดิมประเภทหนึ่งให้กับอีกประเภทหนึ่ง ในกรณีนี้ ' การพิมพ์ที่แคบลง ” มีผลตั้งแต่ประเภทข้อมูลที่สูงกว่า เช่น “ ยาว ” ถูกแปลงเป็นประเภทข้อมูลที่ต่ำกว่า “ นานาชาติ '. สามารถทำได้โดยเพียงแค่ใส่ค่าที่ต้องการแปลงตามด้วยประเภทที่ต้องการในวงเล็บ

ตัวอย่าง
ตัวอย่างต่อไปนี้อธิบายแนวคิดที่กล่าวถึง:

สาธารณะ ระดับ จุดยาว {
สาธารณะ คงที่ เป็นโมฆะ หลัก ( สตริง [ ] หาเรื่อง ) {
ยาว ทางเลือก1 = 647467ล ;
ยาว วาล2 = 348 239ล ;
นานาชาติ อัพเดทVal1 = ( นานาชาติ ) ทางเลือก1 ;
นานาชาติ updVal2 = ( นานาชาติ ) วาล2 ;
ระบบ. ออก . พิมพ์ ( 'ค่าจำนวนเต็มคือ: ' + อัพเดทVal1 ) ;
ระบบ. ออก . พิมพ์ ( 'ค่าจำนวนเต็มคือ: ' + updVal2 ) ;
}
}

ในบรรทัดโค้ดด้านบน:

  • ในทำนองเดียวกันให้เริ่มต้นทั้งสอง ' ยาว ” ค่า
  • ในขั้นตอนถัดไป ให้ใช้ “ การพิมพ์แบบแคบ ” วิธีการโดยใส่ค่าที่ต้องการแปลงแล้วตามด้วยประเภทที่ต้องการคือ “ นานาชาติ '.
  • สุดท้าย แสดงการแปลง “ นานาชาติ ” ค่าบนคอนโซล

เอาต์พุต

จากผลลัพธ์นี้ จะเห็นได้ว่า “ ยาว ” ค่าจะถูกแปลงเป็น “ นานาชาติ ” ค่านิยมอย่างเหมาะสม

วิธีที่ 3: แปลง long Object เป็น int ใน Java โดยใช้วิธี “intValue()”

intValue() ” วิธีการใน Java คืนค่าของตัวเลขที่เกี่ยวข้องในรูปแบบของ “ นานาชาติ '. วิธีนี้สามารถนำไปใช้เพื่อแปลง long ที่เกี่ยวข้อง ' วัตถุ ” เป็นจำนวนเต็ม

ตัวอย่าง
ทำตามตัวอย่างด้านล่างเพื่อทำการแปลง:

สาธารณะ ระดับ longtoint3 {
สาธารณะ คงที่ เป็นโมฆะ หลัก ( สตริง [ ] หาเรื่อง ) {
วาลยาว1 = ใหม่ ยาว ( 8624675ล ) ;
ยาว val2 = ใหม่ ยาว ( 3482398L ) ;
นานาชาติ อัพเดทVal1 = ทางเลือก1. intValue ( ) ;
นานาชาติ updVal2 = วาล2. intValue ( ) ;;
ระบบ. ออก . พิมพ์ ( 'ค่าจำนวนเต็มคือ: ' + อัพเดทVal1 ) ;
ระบบ. ออก . พิมพ์ ( 'ค่าจำนวนเต็มคือ: ' + updVal2 ) ;
}
}

ในบล็อกรหัสด้านบน:

  • ก่อนอื่น สร้างสอง “ ยาว ” วัตถุผ่านทาง “ ใหม่ ” คำหลักและ “ ยาว() ” ตัวสร้างตามลำดับ
  • ในพารามิเตอร์คอนสตรัคเตอร์ ระบุค่ายาวที่ต้องแปลงเป็น “ นานาชาติ '.
  • ตอนนี้เชื่อมโยง ' intValue() ” วิธีการกับทั้งวัตถุที่สร้างขึ้นและแปลงสะสม “ ยาว ” ค่าเป็น “ จำนวนเต็ม ” และแสดงให้พวกเขาเห็น

เอาต์พุต

ผลลัพธ์ข้างต้นแสดงว่าค่าวัตถุถูกแปลงเป็น “ จำนวนเต็ม ' อย่างเหมาะสม.

บทสรุป

หากต้องการแปลง long เป็น int ใน Java ให้ใช้ปุ่ม “ Math.toIntExact() ” วิธีการ “ Typecasting แคบ ” วิธีการ หรือ “ intValue() ' วิธี. วิธีการเหล่านี้แปลงค่า long และออบเจกต์ที่เริ่มต้นเป็นจำนวนเต็มโดยมีเงื่อนไขว่า “ ยาว ” ค่าที่ต้องแปลงไม่เกินค่าสูงสุดของ “ นานาชาติ '. บล็อกนี้ได้รับคำแนะนำให้แปลง long เป็น int โดยใช้ Java