การแปลงประเภทข้อมูล Java (การแปลงอัตโนมัติและการแปลงแบบหล่อ)
การแปลงประเภทข้อมูลแบ่งออกเป็นการแปลงอัตโนมัติและการแปลงแบบหล่อ การแปลงอัตโนมัติคือการแปลงที่ "เงียบ" ดำเนินการโดยโปรแกรมในระหว่างการดำเนินการ บิต
การแปลงประเภทข้อมูลอัตโนมัติ
การแปลงอัตโนมัติจะถูกแปลงจากต่ำถึงสูง ความสัมพันธ์ลำดับความสำคัญระหว่างข้อมูลประเภทต่าง ๆ มีดังนี้:
ต่ำ ------------------------------------------------- ------------------------------------------------------ ------------------------------------------------------ ------------------------------------------------------ ------------------------------------------------------ ----------
ไบต์, สั้น, char-> int -> long -> float -> double
ในการดำเนินการข้อมูลประเภทต่าง ๆ จะถูกแปลงเป็นประเภทเดียวกันเป็นครั้งแรกจากนั้นการคำนวณจะดำเนินการ
การแปลงประเภทข้อมูลแบบบังคับ
รูปแบบการหล่อคือการเพิ่ม "()" ก่อนที่ข้อมูลที่จำเป็นต้องเปลี่ยนจากนั้นเพิ่มประเภทข้อมูลที่ต้องเปลี่ยนเป็นวงเล็บ ข้อมูลบางอย่างจะหายไปหลังจากการดำเนินการแปลงในขณะที่คนอื่น ๆ จะมีความแม่นยำมากขึ้นตัวอย่างต่อไปนี้สามารถแสดงปัญหานี้ได้
การสาธิตคลาสสาธารณะ {โมฆะคงที่หลัก (สตริง [] args) {int x; ; ผลการทำงาน:
x = 45y = 56.0
วิเคราะห์ส่วนโปรแกรมข้างต้นอย่างระมัดระวัง: เนื่องจากมีการแปลงประเภทที่ถูกบังคับของ Int ก่อน 34.56, 34.56 กลายเป็น 34 ในทำนองเดียวกัน 11.2 กลายเป็น 11 ดังนั้นผลลัพธ์ของ x คือ 45 มีการหล่อสองครั้งก่อน x ดังนั้นค่าของ x จะกลายเป็น 45.0 และด้านหน้าของ 10 ก็ถูกบังคับให้ต้องสองเท่าดังนั้นจึงกลายเป็น 10.0 ดังนั้นค่าของ y จะกลายเป็น 56 ในที่สุด
ชนิดข้อมูล Java และคำจำกัดความตัวแปร
Java เป็นภาษาที่พิมพ์อย่างมากและต้องระบุประเภทข้อมูลเมื่อประกาศตัวแปร ค่าของตัวแปรมีพื้นที่หน่วยความจำจำนวนหนึ่ง ตัวแปรประเภทต่าง ๆ มีขนาดต่างกัน
มี 8 ประเภทข้อมูลพื้นฐานใน Java รวมถึง 4 ประเภทจำนวนเต็ม, 2 ประเภทลอยตัว, 1 ประเภทอักขระและ 1 ประเภทบูลีน
สำหรับข้อมูลจำนวนเต็มมักใช้ประเภท int แต่ถ้ามันหมายถึงพลังงานที่ปล่อยออกมาจากระเบิดปรมาณูลดลงจากฮิโรชิมานางาซากิคุณต้องใช้ประเภทยาว ไบต์และประเภทสั้นส่วนใหญ่จะใช้ในสถานการณ์แอปพลิเคชันเฉพาะเช่นการประมวลผลไฟล์พื้นฐานหรืออาร์เรย์ขนาดใหญ่ที่จำเป็นต้องควบคุมปริมาณพื้นที่เก็บข้อมูล
ใน Java ความยาวของข้อมูลจำนวนเต็มนั้นเกี่ยวข้องกับแพลตฟอร์มซึ่งแก้ปัญหามากมายที่ซอฟต์แวร์นำไปสู่โปรแกรมเมอร์เมื่อพอร์ตจากแพลตฟอร์มหนึ่งไปยังอีกแพลตฟอร์มหนึ่ง ในทางตรงกันข้ามความยาวของข้อมูลจำนวนเต็ม C/C ++ นั้นเกี่ยวข้องกับแพลตฟอร์มและโปรแกรมเมอร์จำเป็นต้องเลือกจำนวนเต็มที่เหมาะสมสำหรับแพลตฟอร์มที่แตกต่างกันซึ่งอาจทำให้โปรแกรมทำงานได้อย่างเสถียรในระบบ 64 บิตเพื่อให้ระบบ 32 บิต
Octal มีคำนำหน้า 0 ตัวอย่างเช่น 010 สอดคล้องกับ 8 ในทศนิยม; สอดคล้องกับ 9 ในทศนิยม นอกจากนี้ยังเริ่มต้นจาก Java 7 ขีดล่างสามารถใช้เพื่อแยกตัวเลขคล้ายกับการเขียนเชิงตัวเลขภาษาอังกฤษตัวอย่างเช่น 1_000_000 หมายถึง 1,000,000 ซึ่งเป็นหนึ่งล้าน ขีดเส้นใต้เป็นเพียงการทำให้รหัสอ่านได้มากขึ้นและคอมไพเลอร์จะลบขีดล่างเหล่านี้
นอกจากนี้ซึ่งแตกต่างจาก C/C ++, Java ไม่รองรับประเภทที่ไม่ได้ลงชื่อ
ประเภทลอยมีความยาวสูงสุด 7 หลักและความยาวของจำนวนที่สำคัญรวมถึงส่วนจำนวนเต็มและส่วนทศนิยม ตัวอย่างเช่น:
ลอย x = 223.56f;
หมายเหตุ: แต่ละประเภทลอยมีธง "F" หรือ "F"
ประเภทสองเท่ามีจำนวนมากสูงสุด 15 หลัก เช่นเดียวกับประเภทลอยตัว Double ยังมีธง "D" หรือ "D" หลังจากนั้น ตัวอย่างเช่น:
double x = 23.45d; double y = 422.22d; double z = 562.234;
หมายเหตุ: ข้อมูลจุดลอยตัวโดยไม่มีธงใด ๆ ระบบเริ่มต้นเป็นสองเท่า
ในกรณีส่วนใหญ่ใช้สองประเภทและความแม่นยำของการลอยตัวนั้นยากที่จะตอบสนองความต้องการ
ตัวอย่างของประเภทข้อมูลที่แตกต่างกัน:
การสาธิตคลาสสาธารณะ {โมฆะคงที่หลัก (สตริง [] args) {// ประเภทตัวอักษร char webname1 = 'micro'; ของเว็บไซต์ใช่: " + webName1 + webName2 + webName3); // จำนวนเต็มสั้น x = 22; // ทศนิยม int y = 022; // long long z = 0x22l; // hexadecimal system.out.println (" : x = " + x +", y = " + y +", z = " + z); // ประเภทลอยลอย m = 22.45f; double n = 10; system.out.println (" คำนวณผลิตภัณฑ์: " + m + " *" + n + "=" + m * n); ผลการทำงาน:
ชื่อของเว็บไซต์คือ: Weixueyuan แปลงเป็นทศนิยม: x = 22, y = 18, z = 34 คำนวณผลิตภัณฑ์: 22.45 * 10.0 = 224.50000762939453
จากผลการดำเนินการเราจะเห็นได้ว่าแม้ว่าข้อมูลจุดลอยตัวจะมีเพียงจำนวนเต็มเท่านั้นและไม่มีทศนิยม แต่ระบบจะเพิ่มจุดทศนิยมโดยอัตโนมัติเมื่อเอาต์พุตบนคอนโซลและสถานที่ทศนิยมทั้งหมดถูกตั้งค่าเป็น 0
คำอธิบายของบูลีน
หากคุณมีประสบการณ์การเขียนโปรแกรมและเข้าใจประเภทบูลีนโปรดข้ามการสอนด้านล่าง
ในภาษา C หากเงื่อนไขการตัดสินถูกต้องมันจะกลับ 1 มิฉะนั้นจะส่งคืน 0 ตัวอย่างเช่น:
#include <stdio.h> int main () {int x = 100> 10; d/n ", y); return 0;} ผลการทำงาน:
100> 10 = 1100 <10 = 0
แต่มันแตกต่างกันใน Java ตัวอย่างเช่น:
การสาธิตคลาสสาธารณะ {โมฆะคงที่หลัก (สตริง [] args) {// ตัวละครบูลีน A = 100> 10; out.println ("100 <10 =" + b); );}}} ผลการทำงาน:
100> 10 = true100 <10 = false100 <10 ถูกต้อง
ในความเป็นจริง True เทียบเท่ากับ 1 และ False เทียบเท่ากับ 0 แต่มันได้เปลี่ยนชื่อและกลายเป็นประเภทข้อมูลแยกกัน