วันเสาร์ที่ 10 มกราคม พ.ศ. 2558

การแปลงชนิดข้อมูลของภาษา C

การแปลงชนิดข้อมูลของภาษา  C  (C  type  conversion)

            เมื่อเราเขียนโปรแกรมมักจะพบว่า  ใช้ตัวดำเนินการกับตัวแปรของชนิดข้อมูลแตกต่างกัน  เพื่ออำนวยความสะดวกในการเขียนโปรแกรมภาษา จึงได้กำหนดกฎเกณฑ์ดังนี้  ถ้าค่าตัวแปร  หรือค่าคงที่ต่างชนิดกัน  ให้ทำการเปลี่ยนชนิดของข้อมูลที่มีขนาดเล็กให้เป็นชนิดของข้อมูลที่ใหญ่ขึ้นโดยให้ศึกษารายละเอียดในตารางแสดงลำดับการทำงานของตัวดำเนินการในภาษา  C  ต่อไปนี้พอสังเขป

ตารางแสดงลำดับการทำงานของตัวดำเนินการในภาษา  C


แสดงการเปลี่ยนแปลงชนิดของข้อมูล

ในตารางแสดงลำดับการทำงานของตัวดำเนินการในภาษา  C แถวที่  1  จะเห็นว่า  เป็นตัวแปรชนิดข้อมูลแบบ  int  และ เป็นตัวแปรข้อมูลแบบ  long  เมื่อนำ  และ  มา  บวก  ลบ  คูณ  และหารกัน  ผลลัพธ์ที่ได้จะเป็นชนิดข้อมูลแบบ  long  (เพราะ  long  มีพิสัยในการเก็บข้อมูลกว้างกว่า  int)  เช่น
      int  x = 7;
float y = 2;
-         ถ้า  x/2  จะได้ผลลัพธ์เป็น  3  (ชนิดข้อมูลแบบ  int)
-         ถ้า  x/y  จะได้ผลลัพธ์เป็น  3.500000  (ชนิดข้อมูลแบบ  float)

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

            โปรแกรมตัวอย่าง แสดงโปรแกรมการคำนวณค่าจ้างที่ผิด
ผลลัพธ์ที่ได้จากโปรแกรม
คำอธิบายโปรแกรม
               จากโปรแกรมตัวอย่าง สามารถอธิบายการทำงานของโปรแกรมที่สำคัญ ๆ  ได้ดังนี้
              บรรทัดที่  1   เป็นการประกาศตัวแปร  profits  และ  employees  ให้เป็นชนิด  int
              บรรทัดที่  2   เป็นคำสั่งให้ลบจอภาพ
              บรรทัดที่  3  และ  4  กำหนดค่าให้กับตัวแปร  โดย  profits  มีค่า  9  และ  employees  มีค่า  2
              บรรทัดที่  5  ให้พิมพ์ข้อความ  Each employee gets  4  ออกแสดงที่จอภาพ  โดยตัวเลข  4  ได้จากการคำนวณ  9/2  คือค่าของ  ตัวแปร  porfits/ employees

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

โปรแกรมตัวอย่าง แสดงโปรแกรมการเปลี่ยนแปลงชนิดข้อมูลชั่วคราว
ผลลัพธ์ที่ได้จากโปรแกรม
คำอธิบายโปรแกรม
            โปรแกรมข้างต้นจะเหมือนกับโปรแกรมแสดงโปรแกรมการคำนวณค่าจ้างที่ผิด ทุกประการยกเว้น  บรรทัดที่  1  ในการคำนวณ  (float)  profits / employees  เป็นการเปลี่ยนตัวแปร  profits  จากชนิดข้อมูล  int  ให้เป็น  float  ชั่วคราว  ดังนั้นผลลัพธ์ที่ได้จากโปรแกรมจึงเป็น  4.500000  และใช้  %ในการควบคุมการแสดงผล
            จากโปรแกรมตัวอย่างแสดงโปรแกรมการเปลี่ยนแปลงชนิดข้อมูลชั่วคราวข้างต้นได้ใช้ฟังก์ชัน  printf( )  เพื่อแสดงให้อยู่ในรูปแบบที่ต้องการ  โดยใช้รหัสรูปแบบ  %f  (format   code)  %f  เป็นรหัสรูปแบบการพิมพ์ข้อมูลชนิด  float    ได้สรุปรหัสรูปแบบการพิมพ์ข้อมูลทั้งหมดที่ใช้กับฟังก์ชัน  printf( )  ผู้เขียนโปรแกรมควรจำให้ได้ทั้งหมด   เพื่อความสะดวกและรวดเร็วในการใช้เขียนโปรแกรมในโอกาสต่อไป


ที่มา : http://varried.blogspot.com/

ไม่มีความคิดเห็น:

แสดงความคิดเห็น