ชนิดของข้อมูล
รูปที่ 2-2 แสดงชนิดของข้อมูลในภาษา C++ บางส่วน
จำนวนเต็ม คือ ตัวเลขทั้งหมดได้แก่ 0,1,-1,2,-2,3,-3 เป็นต้น สำหรับจำนวนเต็มชนิด unsigned integet คือ จำนวนเต็มที่ไม่ใช่ลบ เช่น 0,1,2,3, ฯลฯ ภาษา C++ จำแนกจำนวนเต็มออกเป็น 9 ชนิด ได้แก่
Char short
int unsigned
short int
Signed
char int unsigned
int
Unsigned
char long
int unsigned
long int
ความแตกต่างของจำนวนเต็มทั้ง 9 ชนิดนี้ คือ
พิสัยของจำนวนเต็มซึ่งขึ้นกับระบบเครื่องคอมพิวเตอร์ที่นำมาใช้งาน เช่น
บนระบบคอมพิวเตอร์พีซีที่ใช้ระบบปฎิบัติการ DOS พิสัยของจำนวนเต็มชนิด int มีค่าอยู่ระหว่าง-32768 และ 32768 ในขณะที่บนระบบปฎิบัติการ UNIX ซึ่งทำงานบนเครื่องเวิร์กสเตชั่นจะมีพิสัยอยู่ระหว่าง -2147483648 และ
2147483647 คำว่า int สามารถละได้ตอนที่กำหนดแบบชนิดข้อมูลดังต่อไปนี้ short,int,long,unsigned
short int,unsigned int และ unsigned long int
ผลลัพธ์ที่เกิดขึ้นนี้ได้จากระบบ UNIX บนเครื่องเวิร์กสเตชั่น
ซึ่งถ้าพิจารณาให้ดีจะเห็นว่า มีข้อมูลที่แตกต่างกันเพียง 6 ชนิดเท่านั้น ดังนี้
Char ช่วงพิสัย -128 ถึง 127 (1 ไบต์)
short ช่วงพิสัย -32768 ถึง 32767 (2ไบต์)
int ช่วงพิสัย -2147483648 ถึง 2147483647 (4 ไบต์)
unsigned
char ช่วงพิสัย 0 ถึง 255 (1 ไบต์)
unsigned
short ช่วงพิสัย 0 ถึง 65535 (2 ไบต์)
unsigned ช่วงพิสัย 0 ถึง 4294967295 (4 ไบต์)
จำนวนเต็มชนิด short ใช้เนื้อที่ 2 ไบต์ (จำนวน 16 บิต) เนื่องจากมีข้อมูลอยู่ในช่วงพิสัย
-32768 ถึง 32767 ซึ่งมีจำนวนข้อมูลเท่ากับ 65536 = 216 ตัว ( 1 ไบต์มีขนาด 8 บิต)
บนระบบโปรแกรม Borland C++ ให้พิสัยค่าเท่ากัน
ยกเว้นชนิด int และ unsigned ซึ่งมีค่าดังนี้
Int ช่วงพิสัย -32768 ถึง 32767 (2ไบต์)
Unsigned ช่วงพิสัย 0 ถึง 65535 (2 ไบต์)
Char ในภาษา C++ ข้อมูลชนิด char เป็นข้อมูลจำนวนเต็มชนิดหนึ่ง หมายความว่า ตัวแปรใด ๆ
ก็ตามที่ถูกกำหนดให้เป็นชนิด char สามารถนำมาใช้ในประโยคนิพจน์จำนวนเต็มได้เช่นเดียวกับข้อมูลจำนวนเต็มชนิดอื่น
ดังตัวอย่างการใช้งานต่อไปนี้
Char
C = 54;
Char
d = 2*C-7;
C+
= d%3;
คำว่า char เป็นคำย่อของคำว่า character การใช้ char เมื่อตัวแปรชนิดนี้ถูกใช้เป็นข้อมูลรับเข้าหรือข้อมูลส่งออกจะทำการแปลงเป็นตัวอักขระ
เมื่อใดก็ตามที่ตัวอักขระถูกใช้เป็นข้อมูลรับเข้า
ระบบคอมพิวเตอร์จะจัดเก็บรหัสแอสกี (ASCII) ไว้เป็นจำนวนเต็ม
และเมื่อใดก็ตามที่ ตัวแปรชนิด char ถูกส่งเป็นข้อมูลส่งออก
ระบบจะส่งตัวอักขระที่มีรหัสแอสกีตามนั้นไปยังส่วนของกระแสส่งออก
ดังแสดงในตัวอย่างข้างล่างนี้
ภาษา C++ ได้นิยามข้อมูลจำนวนเต็มขนาด 8 บิต ไว้ 3 ชนิด คือ char,signed
char และ unsigned char แต่มีเพียง
2 ชนิดเท่านั้นที่แตกต่างกัน คือ ชนิด char จะเป็น signed
char หรือ unsigned char ขึ้นอยู่กับคอมพิวเตอร์จะใช้ชนิด char สำหรับตัวอักขระธรรมดา และใช้ unsigned char สำหรับข้อมูลสายอักขระที่มีขนาดสั้นมากๆ ส่วนชนิด signed char ไม่มีปรากฏให้เห็นบ่อยนัก
ข้อมูลชนิดที่กล่าวมานี้เหมาะสำหรับจัดเก็บข้อมูลที่มีค่าน้อยๆ แต่มีเป็นจำนวนมาก
และไม่ต้องการส่งผลลัพธ์โดยผ่านทางตัวดำเนินการส่งออก <<
คำสั่งแสดงผลลัพธ์คำสั่งแรกจะส่งตัวแปร c ไปยังกระแสส่งออก
เนื่องจากข้อมูลดังกล่าว มีค่าเท่ากับ 64 ผลลัพธ์ที่เกิดขึ้น คือ ตัวอักขระ “@” (ตัวอักขระ “@” มีรหัสแอสกีเท่ากับ 64 )
ต่อจากนั้น c จะได้รับการเพิ่มค่าเป็น 65
ซึ่งส่งผลให้ผลลัพธ์ตัวถัดไปคือ ตัวอักขระ “A”(
ตัวอักขระ “A” มีรหัสแอสกีเท่ากับ 65 )
ส่วนที่เหลือของโปรแกรมจะดำเนินการต่อไปนี้ในลักษณะเดิม (
ถ้าระบบคอมพิวเตอร์ที่ใช้งานอยู่เป็นรหัสEBCDIC ผลลัพธ์ที่ได้จะแตกต่างออกไป)
เมื่อโปรแกรมนี้ได้รับการประมวลผล จะทำให้ตัวแปร c มีค่าเป็น 65,66 และ 67 ตามลำดับ
แต่เนื่องจากตัวแปรอักขระได้พิมพ์ออกมาเป็นตัวอักขระ ดังนั้น
ผลลัพธ์ที่เกิดขึ้นในแต่ละบรรทัด คือ
ตัวอักขระที่มีค่ารหัสแอสกีตรงกับค่าของตัวแปร c และค่ารหัสแอสกีของตัวอักขระนั้น
ดังนั้น ค่าที่พิมพ์ออกมา คือ ตัวอักษร A, B และ C พร้อมกับรหัสแอสกีของตัวอักษรนั้นนั่นเอง ในตัวอย่างนี้ใช้ฟังก์ชัน int
(c ) สำหรับพิมพ์ค่ารหัสแอสกีของตัวอักขระ
นิพจน์ int
( c) ซึ่งเรียกว่า (Cast) มีหน้าที่แปลงข้อมูลตัวอักขระเป็นจำนวนเต็ม
ซึ่งทำให้สามารถพิมพ์รหัสแอสกีของตัวอักษรได้
สัญลักษณ์ “Hello,” ซึ่งเรียกว่าสายอักขระ (String) ประกอบด้วยลำดับของตัวอักขระที่อยู่ภายในเครื่องหมายอัญประกาศ (“”)
สายอักขระ (String) หรือเรียกกันโดยทั่วไปว่า สตริงค์ คือ
ลำดับของตัวอักขระที่อยู่ต่อเนื่องกันในหน่วยความจำและสิ้นสุดลงที่ตัวอักขระ Null คือ ‘\0’ ข้อมูลสายอักขระถูกเข้าถึงด้วยตัวแปรชนิด char* (ตัวชี้ชี้ไปที่ char ) เช่น ถ้า s เป็นชนิด char* แล้วประโยคคำสั่ง cout<<
s<<endl; จะพิมพ์ตัวอักขระทั้งหมดที่เก็บอยู่ในหน่วยความจำโดยเริ่มต้นที่เลขที่อยู่ s และจบลงทันทีที่พบกับตัวอักขระ Null
ตัวอักขระ (Character) หมายถึง สัญลักษณ์ที่ใช้ในภาษาต่างๆ ซึ่งมีทั้งสัญลักษณ์ในรูปตัวอักษร
ตัวเลข และสัญลักษณ์อื่นๆ ได้แก่ A-Z,0-9 และเครื่องหมายต่างๆ
ที่คอมพิวเตอร์สามารถอ่านเข้าใจความหมายและนำไปเก็บไว้ในหน่วยความจำได้
(ช่องว่างก็นับเป็น “ตัวอักขระ” ด้วย) เครื่องคอมพิวเตอร์ส่วนใหญ่ที่ใช้กันอยู่จะใช้ชุดตัวอักขระรหัสแอสกี (ASCII มาจากคำเต็มว่า American Standard Code for Information Interchange) ชุดอักขระนี้รวมทั้งตัวอักษรตัวเล็กและตัวใหญ่จำนวน 52 ตัว ตัวเลขจำนวน 10
ตัว เครื่องหมายวรรคตอนที่พบเห็นบนแป้นพิมพ์และตัวอักขระที่ไม่ใช้ในงานพิมพ์
แต่ใช้สำหรับควบคุมการทำงานของโปรแกรม
ตัวอย่างตัวอักษรที่ไม่นำมาใช้ในงานพิมพ์ เช่น ‘\n’ กำหนดขึ้นด้วยเครื่องหมายตัวอักขระทับหลัง (\) และตัวอักขระ n นอกจากนี้ ยังมีตัวอักขระในลักษณะเช่นนี้อีกมาก เช่น ‘\t’ หมายถึง การตั้งระยะ และตัวอักขระเตรียมพร้อม คือ ‘\a’ หมายถึง เมื่อมีการพิมพ์จะมีเสียงปี๊บ (Beep) เกิดขึ้น นอกจากนี้ ถ้าต้องการพิมพ์ตัวอักขระที่มีสัญลักษณ์ตรงกับตัวที่ใช้ในการควบคุมการทำงานของโปรแกรม
เช่น ต้องการพิมพ์เครื่องหมายอัญประกาศก็สามารถทำได้โดยการพิมพ์ \” หรือถ้าต้องการพิมพ์เครื่องหมาย \ ก็สามารถพิมพ์ได้โดยการพิมพ์ \\
ตัวอักขระสามารถนำมาใช้เป็นส่วนของสายอักขระในคำสั่งโปรแกรม
หรือเป็นข้อมูลตัวเดียวโดดๆ ก็ได้ ถ้าเมื่ออยู่ในลักษณะของข้อมูลตัวเดียวโดด ๆ
จะหมายถึง ค่าคงที่อักขระ และ จะต้องอยู่ภายในเครื่องหมายอัญประกาศเดี่ยว (‘’)

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