ความแตกต่างระหว่างการหล่อประเภทและการแปลงประเภท

ผู้เขียน: Laura McKinney
วันที่สร้าง: 1 เมษายน 2021
วันที่อัปเดต: 4 พฤษภาคม 2024
Anonim
ข้อแตกต่างของการแปลงเพศ เทคนิค PPV vs เทคนิค Graft อันไหนดีกว่ากัน!? l SATANGBANK
วิดีโอ: ข้อแตกต่างของการแปลงเพศ เทคนิค PPV vs เทคนิค Graft อันไหนดีกว่ากัน!? l SATANGBANK

เนื้อหา


ความแตกต่างพื้นฐานระหว่างการแปลงประเภทและการคัดเลือกประเภทคือการแปลงประเภท "โดยอัตโนมัติ" โดยคอมไพเลอร์ในขณะที่การหล่อประเภทจะต้อง "ทำอย่างชัดเจน" โดยโปรแกรมเมอร์

คำสองคำว่า "การพิมพ์แบบหล่อ" และ "การแปลงแบบ" เกิดขึ้นเมื่อมีความจำเป็นต้องแปลงชนิดข้อมูลหนึ่งไปเป็นแบบอื่น เมื่อทั้งสองประเภทเข้ากันได้กับแต่ละอื่น ๆ แล้วการแปลงของประเภทหนึ่งไปยังอีกประเภทหนึ่งจะทำโดยอัตโนมัติโดยคอมไพเลอร์ มาพูดคุยเกี่ยวกับความแตกต่างทั้งการหล่อแบบและการแปลงด้วยความช่วยเหลือของกราฟเปรียบเทียบ

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

ตารางเปรียบเทียบ:

พื้นฐานสำหรับการเปรียบเทียบประเภทหล่อการแปลงประเภท
ความหมายชนิดข้อมูลหนึ่งถูกกำหนดให้กับอีกประเภทหนึ่งโดยผู้ใช้โดยใช้ตัวดำเนินการส่งสัญญาณแล้วมันถูกเรียกว่า "Type Casting"การแปลงชนิดข้อมูลหนึ่งเป็นประเภทอื่นโดยอัตโนมัติโดยคอมไพเลอร์เรียกว่า "การแปลงประเภท"
ประยุกต์การหล่อประเภทยังสามารถนำไปใช้กับข้อมูลสองชนิดที่เข้ากันไม่ได้การแปลงประเภทสามารถนำไปใช้ได้ต่อเมื่อชนิดข้อมูลสองชนิดเข้ากันได้
ผู้ประกอบการสำหรับการหล่อชนิดข้อมูลไปยังอีกประเภทหนึ่งจำเป็นต้องใช้โอเปอเรเตอร์การหล่อ ()ไม่ต้องใช้ตัวดำเนินการ
ขนาดของประเภทข้อมูลประเภทปลายทางอาจเล็กกว่าประเภทต้นทางที่นี่ประเภทปลายทางจะต้องมีขนาดใหญ่กว่าประเภทแหล่งที่มา
การดำเนินการมันทำในระหว่างการออกแบบโปรแกรมมันทำอย่างชัดเจนในขณะที่รวบรวม
ประเภทการแปลง

การแปลงให้แคบลงการแปลงแบบขยาย
ตัวอย่างint a;
ไบต์ b;
...
...
b = (ไบต์) a;
int a = 3;
ลอยข;
ข = a; // ค่าเป็น b = 3.000


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

ประเภทหล่อ สามารถกำหนดเป็นการหล่อของชนิดข้อมูลหนึ่งไปยังชนิดข้อมูลอื่นโดยโปรแกรมเมอร์ในเวลาของการออกแบบโปรแกรม การแปลงชนิดข้อมูลหนึ่งไปเป็นอีกประเภทโดยอัตโนมัตินั้นไม่สามารถทำได้ตลอดเวลา อาจเป็นเงื่อนไขว่า 'ประเภทปลายทาง' เล็กกว่า 'ประเภทแหล่งที่มา' ดังนั้นโปรแกรมเมอร์จึงต้องแปลงชนิดข้อมูลที่มีขนาดใหญ่ขึ้นอย่างชัดเจนเป็นชนิดข้อมูลขนาดเล็กโดยใช้ตัวดำเนินการแคสเตอร์ ‘()’ เนื่องจากประเภทข้อมูลที่มีขนาดใหญ่ขึ้นถูกปรับให้เหมาะกับประเภทข้อมูลที่มีขนาดเล็กลงจึงเรียกว่า 'การแปลงที่แคบลง'

ประกาศ:

destination_type = (target_type) ตัวแปร / value // target เป็นประเภทที่คุณต้องการแปลงประเภทของแหล่งที่มามันเป็นประเภทปลายทางเสมอ

ตัวอย่าง

มาทำความเข้าใจกับตัวอย่าง คุณต้องการแปลงประเภทข้อมูล ‘int’ เป็น ‘byte’ ขณะนี้เนื่องจาก as ไบต์มีขนาดเล็กกว่า ‘int’ ไม่อนุญาตให้ใช้การแปลงประเภท ที่นี่เราต้องแปลง 'int' เป็น 'ไบต์' โดยนัยโดยใช้ตัวดำเนินการชี้ขาด ‘() เนื่องจาก ‘int’ มีขนาดใหญ่กว่า ‘byte’ ขนาดของ ‘int’ จะลดลงเป็นช่วง "int mod byte"


int a; ไบต์ b; ... ... b = (ไบต์) a;

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

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

การแปลงประเภท เป็นการแปลงอัตโนมัติของประเภทข้อมูลหนึ่งไปยังอีกประเภทหนึ่งเมื่อใดก็ตามที่จำเป็นต้องทำโดยคอมไพเลอร์ แต่มีสองเงื่อนไขที่ต้องทำให้พอใจก่อนการแปลงประเภท

  • ประเภทต้นทางและปลายทางจะต้องใช้งานร่วมกันได้
  • ประเภทปลายทางต้องมีขนาดใหญ่กว่าประเภทต้นทาง

เงื่อนไขสองข้อนี้ควรตอบสนองเพื่อให้เกิดการแปลงประเภทและการแปลงแบบนี้เรียกว่า 'การแปลงแบบกว้าง' เนื่องจากประเภทที่เล็กกว่าจะถูกแปลงเป็นประเภทที่ใหญ่กว่าจึงเกิดการขยายประเภทที่กว้างขึ้น สำหรับการแปลงแบบขยายนี้ประเภทตัวเลขเป็น ‘int’, ‘float’ สามารถใช้งานร่วมกันได้ในขณะที่ตัวเลขเป็น char และบูลีนหรือ char เป็นบูลีนก็ไม่รองรับเช่นกัน

ตัวอย่าง

ตัวอย่างนี้จะให้มุมมองที่ดีขึ้นของสิ่งนี้

int a = 3; ลอยข; ข = a; // ค่าเป็น b = 3.000

ที่นี่ ‘int’ ถูกแปลงเป็น ‘float’ ซึ่งมีขนาดใหญ่กว่า ‘int’ จึงมีการขยายประเภทแหล่งที่มาให้กว้างขึ้น ที่นี่ไม่จำเป็นต้องมีตัวดำเนินการแคสเตอร์เนื่องจากคอมไพเลอร์จะทำอย่างชัดเจน

  1. ความแตกต่างพื้นฐานที่แยกความแตกต่างของการหล่อแบบจากการแปลงประเภทคือการคัดเลือกประเภทนั้นเป็นการแปลงประเภทหนึ่งไปสู่อีกประเภทหนึ่งซึ่งกระทำโดยโปรแกรมเมอร์ ในทางกลับกันการแปลงชนิดคือการแปลงประเภทหนึ่งไปเป็นอีกประเภทหนึ่งโดยคอมไพเลอร์ขณะรวบรวม
  2. ประเภทการหล่อสามารถนำไปใช้กับประเภทข้อมูลซึ่งอาจเข้ากันไม่ได้ ในทางกลับกันการแปลงประเภทสามารถใช้ได้กับประเภทข้อมูลที่เข้ากันได้เท่านั้น
  3. การแปลงประเภทหนึ่งไปเป็นประเภทอื่นในการคัดเลือกนักแสดงต้องใช้ผู้ดำเนินการคัดเลือก“ ()” ในขณะที่การแปลงประเภทข้อมูลหนึ่งไปเป็นประเภทอื่นในการแปลงประเภทไม่จำเป็นต้องใช้ผู้ดำเนินการใด ๆ
  4. ในขณะที่แปลงชนิดข้อมูลหนึ่งไปเป็นอีกประเภทหนึ่งในการคัดเลือกประเภทประเภทปลายทางอาจมีขนาดใหญ่กว่าหรือเล็กกว่าประเภทแหล่งที่มา ตรงกันข้ามประเภทปลายทางจะต้องมีขนาดใหญ่กว่าประเภทต้นทางในการแปลงประเภท
  5. การแปลงประเภทหนึ่งไปเป็นอีกประเภทหนึ่งเสร็จสิ้นในขณะที่เข้ารหัสในการคัดเลือกนักแสดง ในทางกลับกันในการแปลงประเภทการแปลงประเภทหนึ่งไปอีกประเภทหนึ่งจะกระทำอย่างชัดเจนในระหว่างการรวบรวม
  6. การคัดเลือกประเภทนั้นเรียกว่าการแปลงแบบแคบเนื่องจากที่นี่ประเภทปลายทางอาจเล็กกว่าประเภทต้นทางได้ การแปลงประเภทเรียกว่าการแปลงแบบขยายเนื่องจากที่นี่ประเภทปลายทางต้องมีขนาดใหญ่กว่าประเภทต้นทาง

สรุป:

สามารถสรุปได้ว่าการแปลงประเภทและการหล่อประเภททั้งสองทำหน้าที่ในการแปลงประเภทข้อมูลหนึ่งไปเป็นอีกประเภทหนึ่ง แต่แตกต่างกันไปในแง่ที่ว่าการคัดเลือกนักเขียนนั้นกระทำโดยโปรแกรมเมอร์โดยใช้ตัวดำเนินการ cast () 'และการแปลงประเภท และมันไม่ได้ใช้โอเปอเรเตอร์เลย