
โปรแกรมภาษาปาสคาล ทดสอบชนิดของข้อมูล
จาก No-3 เราพบว่าเมื่อตัวแปร Bytes (ชนิด BYTE แบบไม่คิดเครื่องหมาย) มีค่าเท่ากับ 255 + 1 หรือ 256 แต่ผลที่ได้กลับวนรอบกลับมาที่จุดเริ่มต้นใหม่ ... นั่นคือ 0
นี่คือบทพิสูจน์ ... ผลลัพธ์ที่ได้มันควรจะได้เป็น 256 (ฐาน 10) หรือ
1 0 0 0 0 0 0 0 0 (ฐาน 2) แต่พี่น้องพึงสังเกตว่าเลขจำนวนเต็มขนาด 1 ไบต์ มันสามารถเก็บค่าได้เพียง 8 บิต (บิต 7 - บิต 0 = 8 บิต)
ดังนั้นมันจึงเก็บได้เพียงเลข 0 ทั้งหมด 8 ตัว ส่วนตัวทด คือ 1 มันคือบิต 8 (หรือตัวที่ 9) ไม่รู้ว่าเราจะเอามันไปยัดใส่ไว้ตรงไหนน่ะซิ ผลลัพธ์ที่ได้มันก็เลยให้คำตอบมาเป็น 0 อย่างที่เห็นและเป็นอยู่ ... แต่หากพี่น้องต้องการจะคิดตัวทดด้วย ก็จะต้องเปลี่ยนตัวแปรชนิด BYTE ให้กลายเป็นเลขจำนวนเต็มแบบ Integer ขนาด 2 ไบต์แทนไงล่ะคร้าบ ...
เมื่อลองนำมาทดสอบกับ MS Visual Basic 6.0เกิด Run Time Error แบบกระจุ๊กกระจิ๊ก ...
ซึ่งนอกจากจะเรื่องของชนิดข้อมูลแล้ว มันยังมีอีกหลายๆอย่างที่พี่น้องต้องเจอะกับ Bug อันเนื่องมาจากสาเหตุเล็กๆน้อยๆที่มักจะมองข้ามไป