การแปลงชนิดข้อมูลของภาษา C (C
type conversion)
เมื่อเราเขียนโปรแกรมมักจะพบว่า
ใช้ตัวดำเนินการกับตัวแปรของชนิดข้อมูลแตกต่างกัน เพื่ออำนวยความสะดวกในการเขียนโปรแกรมภาษา C จึงได้กำหนดกฎเกณฑ์ดังนี้ ถ้าค่าตัวแปร
หรือค่าคงที่ต่างชนิดกัน
ให้ทำการเปลี่ยนชนิดของข้อมูลที่มีขนาดเล็กให้เป็นชนิดของข้อมูลที่ใหญ่ขึ้นโดยให้ศึกษารายละเอียดในตารางแสดงลำดับการทำงานของตัวดำเนินการในภาษา C ต่อไปนี้พอสังเขป
ตารางแสดงลำดับการทำงานของตัวดำเนินการในภาษา C
แสดงการเปลี่ยนแปลงชนิดของข้อมูล
ในตารางแสดงลำดับการทำงานของตัวดำเนินการในภาษา C
แถวที่ 1 จะเห็นว่า
x เป็นตัวแปรชนิดข้อมูลแบบ int
และ y เป็นตัวแปรข้อมูลแบบ long เมื่อนำ x
และ y มา บวก
ลบ คูณ และหารกัน
ผลลัพธ์ที่ได้จะเป็นชนิดข้อมูลแบบ long (เพราะ long
มีพิสัยในการเก็บข้อมูลกว้างกว่า int)
เช่น
int x = 7;
float y = 2;
-
ถ้า x/2 จะได้ผลลัพธ์เป็น 3
(ชนิดข้อมูลแบบ int)
-
ถ้า x/y จะได้ผลลัพธ์เป็น 3.500000 (ชนิดข้อมูลแบบ float)
ข้อสังเกต ภาษา C เป็นภาษาที่ดีมาก
ที่อำนวยความสะดวกในการแปลงชนิดข้อมูลของตัวแปรให้ใหญ่ขึ้น
ทำให้ไม่มีปัญหาในการเก็บข้อมูลและเราไม่ต้องกังวลผลที่ได้จากการดำเนินการของตัวแปรในนิพจน์ต่าง
ๆ นอกจากนี้ภาษา C
ยังอนุญาตให้เราแปลงชนิดข้อมูลได้ชั่วคราวด้วยตัวผู้เขียนโปรแกรมเอง โดยให้ศึกษาโปรแกรมตัวอย่างที่ 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
จากโปรแกรมตัวอย่างนี้
เราคงเห็นแล้วว่าผลหารที่ได้จะเป็นจำนวนเต็ม
ส่วนที่เป็นเลขทศนิยมจะตัดทิ้งไป
เมื่อภาษา C ทำงานกับข้อมูลชนิดจำนวนเต็ม เพื่อแก้ปัญหาที่เกิดการผิดพลาด
ในกรณีนี้เราสามารถเปลี่ยนชนิดข้อมูลได้ชั่วคราว คือ
เปลี่ยนตัวแปร profits จากชนิดข้อมูลแบบ int ไปเป็น float
ชั่วคราว
ดังตัวอย่างโปรแกรมแสดงโปรแกรมการเปลี่ยนแปลงชนิดข้อมูลชั่วคราว ต่อไปนี้
โปรแกรมตัวอย่าง
แสดงโปรแกรมการเปลี่ยนแปลงชนิดข้อมูลชั่วคราว
ผลลัพธ์ที่ได้จากโปรแกรม
คำอธิบายโปรแกรม
โปรแกรมข้างต้นจะเหมือนกับโปรแกรมแสดงโปรแกรมการคำนวณค่าจ้างที่ผิด
ทุกประการยกเว้น บรรทัดที่ 1 ในการคำนวณ
(float) profits /
employees เป็นการเปลี่ยนตัวแปร profits จากชนิดข้อมูล int
ให้เป็น float ชั่วคราว ดังนั้นผลลัพธ์ที่ได้จากโปรแกรมจึงเป็น 4.500000 และใช้
%f ในการควบคุมการแสดงผล
จากโปรแกรมตัวอย่างแสดงโปรแกรมการเปลี่ยนแปลงชนิดข้อมูลชั่วคราวข้างต้นได้ใช้ฟังก์ชัน printf( ) เพื่อแสดงให้อยู่ในรูปแบบที่ต้องการ โดยใช้รหัสรูปแบบ %f
(format code) %f เป็นรหัสรูปแบบการพิมพ์ข้อมูลชนิด
float ได้สรุปรหัสรูปแบบการพิมพ์ข้อมูลทั้งหมดที่ใช้กับฟังก์ชัน printf( ) ผู้เขียนโปรแกรมควรจำให้ได้ทั้งหมด
เพื่อความสะดวกและรวดเร็วในการใช้เขียนโปรแกรมในโอกาสต่อไป
ที่มา : http://varried.blogspot.com/
ไม่มีความคิดเห็น:
แสดงความคิดเห็น