You are on page 1of 44

305171 – Computer Programming โดย อ.

สริ ภพ คชร ัตน์ 1


What is Computer ?
• คอมพิวเตอร์ คือ อุปกรณ์อเิ ลคทรอนิคส ์ ทีท่ างานภายใต ้คาสงั่
ควบคุม (program) ซงึ่ บันทึกเก็บไว ้ในหน่วยความจาของเครือ่ ง
โดยสามารถทางานได ้ดังนี้
– รับข ้อมูลเข ้า (Input)
– ทาการประมวลผลข ้อมูล (Processing)
– สง่ ข ้อมูลออก (Output)
– เก็บบันทึกข ้อมูลไว ้ในหน่วยความจา (Storage)

• ลักษณะสาคัญของคอมพิวเตอร์ คือการทีเ่ ราสามารถเปลีย ่ นแปลง


คาสงั่ ควบคุม (program) ภายในเครือ ่ งได ้ ซงึ่ จะต่างจากอุปกรณ์
อิเลคทรอนิคสท ์ วั่ ๆไปทีม
่ ก
ี ารทางานตายตัวตามวงจรทางฮาร์ดแวร์ท ี่
ออกแบบไว ้

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 2


Computers รอบตัวเรา
Personal Computers (PC)

Desktop Computer Notebook Computer


(Laptop Computer)
Tablet PC

Mobile Devices
Game Consoles
PDA, PDA Phone Smart Phone
Handheld Game Console

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 3


Computers รอบตัวเรา
Servers

Mainframes Supercomputers

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 4


Computers รอบตัวเรา
Embedded System (ระบบสมองกลฝังต ัว)
– เป็ นการนาระบบคอมพิวเตอร์ขนาดจิว๋ ฝั งไว ้ในอุปกรณ์ เครือ ้
่ งใชไฟฟ้ า และ
เครือ ์ า่ งๆ เพือ
่ งเล่นอิเล็กทรอนิกสต ่ เพิม
่ ความฉลาด ความสามารถให ้กับ
อุปกรณ์เหล่านัน ้ ผ่านซอฟต์แวร์
– โดยทั่วไปคอมพิวเตอร์แบบฝั งตัวจะอยูใ่ นรูปของ Microcontroller ซงึ่ เป็ น
การรวมเอาสว่ นประกอบพืน ้ ฐานของคอมพิวเตอร์ใสไ่ ว ้ใน IC เล็กๆ เพียงตัว
เดียว
– ในปั จจุบน ั embedded system ได ้ถูกนาไปใชอย่ ้ างแพร่หลายเพือ ่ ควบคุมการ
ทางานต่างๆของ อุปกรณ์ไฟฟ้ า, เครือ ่ งจักรอุตสหกรรม, หุน
่ ยนต์, ยานยนต์,
อุปกรณ์ตรวจวัด เป็ นต ้น

Microcontroller Microcontroller Board


305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 5
Computers รอบตัวเรา
PLC (Programmable Logic Controller)
– PLC คือคอมพิวเตอร์ชนิดหนึง่ ทีส ่ ร ้างมาโดยเฉพาะสาหรับการควบคุม
เครือ ้
่ งจักรทีใ่ ชในกระบวนการผลิ ต โดยมีความแตกต่างจากคอมพิวเตอร์ทวั่ ไป
คือ มีความทนทานต่อสภาพแวดล ้อมในโรงงานอุตสาหกรรม เชน ่ ความร ้อน,
ั ญาณรบกวนทางไฟฟ้ า, แรงสน
สญ ั่ สะเทือน
– PLC จะมีภาษาเฉพาะสาหรับ
เขียนโปรแกรมเพือ ่ ควบคุมการทางาน
โดยสามารถเขียนผ่าน terminal ของ
PLC โดยตรง หรือเขียนผ่าน
ซอฟต์แวร์บน PC แล ้วค่อยถ่ายโอน
โปรแกรมเข ้าไปใน PLC

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 6


Computers รอบตัวเรา
CNC (Computer Numerical Control)
– CNC หรือระบบควบคุมเชงิ ตัวเลข คือระบบการควบคุมการเคลือ ่ นทีข
่ อง
เครือ่ งจักรกลผ่านคาสงั่ เชงิ ตัวเลข โดยใชระบบคอมพิ
้ วเตอร์ในการควบคุม
– โดยทั่วไป CNC จะใชกั้ บเครือ ้
่ งจักรทีใ่ ชในการผลิตชนิ้ งาน เชน
่ เครือ ่ งกลึง
เครือ ่ งกัดอัตโนมัต ิ สาหรับงานโลหะการ
– เครือ ่ งจักรทีใ่ ช ้ CNC ในการควบคุมจะเรียกว่าเครือ
่ งจัก CNC หรือ CNC
Machine
– CNC จะมีภาษาเฉพาะสาหรับเขียน
โปรแกรมเพือ ่ ควบคุมการทางาน
่ ภาษา G-code ซงึ่ เป็ นทีน
เชน ่ ย
ิ ม

ใชโดยทั ่วไป

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 7


Computers รอบตัวเรา
การจัดประเภทของคอมพิวเตอร์ ตามความสามารถในการคานวณ (สูงไปตา่ )
1. Super Computer ซูเปอร์คอมพิวเตอร์ ถือได ้ว่าเป็ นคอมพิวเตอร์ทม ี่ ค
ี วามเร็วมาก และมี
ประสท ิ ธิภาพสูงสุดเมือ ่ เปรียบเทียบกับคอมพิวเตอร์ชนิดอืน ่ ๆ เครือ ่ งซูเปอร์คอมพิวเตอร์ม ี
ราคาแพงมาก มีขนาดใหญ่ สามารถคานวณทางคณิตศาสตร์ได ้หลายแสนล ้านครัง้ ต่อ
วินาที และได ้รับการออกแบบ เพือ ้ ้ปั ญหาขนาดใหญ่มากทางวิทยาศาสตร์และทาง
่ ให ้ใชแก
วิศวกรรมศาสตร์ได ้อย่างรวดเร็ว
2. Mainframe Computer เมนเฟรมคอมพิวเตอร์ มีสมรรถภาพทีต ่ า่ กว่าซูเปอร์
คอมพิวเตอร์มาก แต่ยังมีความเร็วสูง และมีประสท ิ ธิภาพสูงกว่ามินค ิ อมพิวเตอร์หรือ
ไมโครคอมพิวเตอร์ เมนเฟรมคอมพิวเตอร์สามารถให ้บริการผู ้ใชจ้ านวนหลายร ้อยคนพร ้อม
ๆ กัน ฉะนั น ้
้ จึงสามารถใชโปรแกรมจ านวนนั บร ้อยแบบในเวลาเดียวกันได ้ โดยเฉพาะถ ้า
ต่อเครือ ้
่ งเข ้าเครือข่ายคอมพิวเตอร์ ผู ้ใชสามารถใช ้ ้จากทั่วโลก ปั จจุบน
ได ั องค์กรใหญ่ๆ
เชน่ ธนาคาร จะใชคอมพิ ้ วเตอร์ประเภทนีใ้ นการทาบัญชล ี กู ค ้า หรือการให ้บริการจาก
เครือ
่ งฝากและถอนเงินแบบอัตโนมัต ิ (ATM)
3. Minicomputer มินค ิ อมพิวเตอร์ คือ เมนเฟรมคอมพิวเตอร์ขนาดเล็ก ๆ ซงึ่ สามารถ

บริการผู ้ใชงานได ้หลายคนพร ้อม ๆ กัน แต่จะไม่มส ี มรรถภาพเพียงพอทีจ ้
่ ะบริการผู ้ใชใน
จานวนทีเ่ ทียบเท่าเมนเฟรมคอมพิวเตอร์ได ้ จึงทาให ้มินค ิ อมพิวเตอร์เหมาะสาหรับองค์กร
ขนาดกลาง หรือสาหรับแผนกหนึง่ หรือสาขาหนึง่ ขององค์กรขนาดใหญ่เท่านั น ้
4. Microcomputer ไมโครคอมพิวเตอร์ คือ คอมพิวเตอร์ขนาดเล็กแบบขนาดตัง้ โต๊ะ
(desktop computer) หรือขนาดเล็กกว่านั น ้

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 8


Computer Hardware vs Software
• Computer Hardware คืออุปกรณ์หรือชน ิ้ สว่ นต่างๆ ทีป
่ ระกอบ
ขึน
้ เป็ นคอมพิวเตอร์ รวมถึงอุปกรณ์ภายนอกทีเ่ กีย
่ วข ้อง
่ CPU, Motherboard, Harddisk, Printer, Monitor, Mouse
– เชน

• Computer Software คือชุดคาสงั่ (รวมถึงข ้อมูลทีเ่ กีย่ วข ้อง) ที่



ใชควบคุ มการทางานของคอมพิวเตอร์ ซงึ่ จะถูกบันทึกไว ้ใน
หน่วยความจาของคอมพิวเตอร์ โดยทีเ่ ราสามารถเพิม ่ ลบ หรือ
เปลีย
่ นแปลงแก ้ไข software ทีบ
่ น
ั ทึกอยูใ่ นคอมพิวเตอร์ได ้
่ OS, Library, Application, Device Driver
– เชน

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 9


สว่ นประกอบพืน
้ ฐานของคอมพิวเตอร์

หน่วยรับข ้อมูล หน่วนประมวลผล หน่วยแสดงผล


(Input Unit) (Processing Unit) (Output Unit)

หน่วยความจาหรือหน่วยเก็บข ้อมูล (Memory Unit)


-หน่วยความจาหลัก (Main Memory)
-หน่วยความจาสารอง (Secondary Memory)

• Input Unit เป็ นสว่ นทีใ่ ชรั้ บข ้อมูลเข ้าไปประมวลผล โดยผ่านอุปกรณ์รับข ้อมูล
• Processing Unit เป็ นสว่ นทีท ่ าหน ้าทีป่ ระมวลผลข ้อมูลตามโปรแกรมของเครือ่ ง ใน
ปั จจุบน
ั จะเรียกว่า หน่วยประมวลผลกลาง (Central Processing Unit; CPU)
• Output Unit เป็ นสว่ นทีใ่ ชแสดงผลลั
้ พธ์จากการประมวลผล ผ่านอุปกรณ์สาหรับแสดงผล
• Memory Unit (Storage) เป็ นสว่ นทีใ่ ชในการเก็ ้ บข ้อมูล หรือโปรแกรมการทางาน รวมทัง้
ผลลัพธ์จากการประมวลผลของหน่วยประมวลผล โดยจะแบ่งเป็ น 2 ประเภท คือ
หน่วยความจาหลัก (Main Memory) และหน่วยความจาสารอง (Secondary Memory)

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 10


อุปกรณ์รับข ้อมูล (Input Devices)
Keyboard Trackball
Mouse Trackpoint (Pointing Stick)

Touchpad Digital Pen Touch Screen Stylus

Joystick

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 11


อุปกรณ์รับข ้อมูล (Input Devices)
Sound Card for PC Camera / Webcam Optical Scanner
Audio Input / Output

Barcode Reader RFID Reader

Magnetic Stripe
Smart Card Reader
Card Reader

Fingerprint Scanner

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 12


อุปกรณ์แสดงผลข ้อมูล (Output Devices)

Monitor Video Card Printer

Speaker
Sound Card

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 13


หน่วยความจา (Memory Unit)
หน่วยความจาหรือหน่วยเก็บข ้อมูล จะแบ่งเป็ น 2 ประเภทตามหน ้าที่
1. หน่วยความจาหล ัก (Main Memory)
ทาหน ้าทีเ่ ก็บโปรแกรมหรือข ้อมูลทีร่ ับมาจากหน่วยรับข ้อมูล เพือ ่ เตรียมสง่ ให ้
หน่วยประมวลผลกลางทาการประมวลผล และรับผลลัพธ์ทไี่ ด ้จากการประมวลผล
่ สง่ ออกหน่วยแสดงข ้อมูลต่อไป ซงึ่ หน่วยความจาหลัก อาจแยกได ้เป็ น 2
เพือ
ประเภท คือ
– RAM (Random Access Memory) สามารถอ่านและเขียนข ้อมูลได ้ในขณะที่
เปิ ดเครือ ่ งอยู่ แต่เมือ่ ปิ ดเครือ
่ ง ข ้อมูลใน RAM จะหายไป
– ROM (Read Only Memory) สามารถอ่านข ้อมูลได ้อย่างเดียว แต่ข ้อมูลจะ
ไม่หายไปเมือ ่ ปิ ดเครือ่ ง โดยปกติจะใชบั้ นทึกโปรแกรมโดยผู ้ผลิตเครือ ่ ง ซงึ่
จะเป็ นสว่ นทีใ่ ชท ้ างานตอน boot เครือ ่ ง
2. หน่วยความจาสารอง (Secondary Memory)
เป็ นสว่ นทีท่ าหน ้าทีเ่ ก็บข ้อมูล หรือโปรแกรมทีจ ่ น่วยความจา
่ ะป้ อนเข ้าสูห
หลักภายในเครือ ่ งก่อนทาการประมวลผลโดย CPU รวมทัง้ เป็ นทีเ่ ก็บผลลัพธ์จาก
การประมวลผลด ้วย
ปั จจุบนั หน่วยความจาสารองของคอมพิวเตอร์โดยทั่วไปก็คอ ื Hard Disk

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 14


หน่วยประมวลผลกลาง (CPU)
หน่วยประมวลผลกลาง (Central Processing Unit, CPU) ประกอบด ้วย
สว่ นต่างๆ ดังนี้
1. หน่วยประมวลผลทางคณิตศาสตร์และลอจิก (Arithmetic and Logic Unit,
ALU) เป็ นสว่ นทีใ่ ชในการค
้ านวณต่างๆ เชน ่ การบวก ลบ คูณ หาร และการ
เปรียบเทียบค่าตัวเลข ตลอดจนการทดสอบเงือ ่ นไขต่างๆ
2. หน่วยควบคุม (Control Unit) เป็ นสว่ นทีใ่ ชควบคุ
้ มการทางานของ CPU และ
ควบคุมการติดต่อกับ Input Unit และ Output Unit โดยจะทาหน ้าทีแ ่ ปลคาสงั่
จากโปรแกรมทีละคาสงั่ แล ้วควบคุมให ้มีการประมวลผลตามคาสงั่
3. รีจส ิ เตอร์ (Registers) เป็ นหน่วยเก็บข ้อมูลชวั่ คราวทีใ่ ชส้ าหรับเก็บข ้อมูลหรือ
คาสงั่ ในขณะที่ CPU ทาการประมวลผล เชน ่ การเก็บผลลัพธ์จากการคานวณใน
ALU ก่อนทีจ ่ ะทาการสง่ ออกไปยังหน่วยความจาหลัก

ทัง้ 3 สว่ นนีจ ื่ มโยงกันด ้วยสายสง่ ข ้อมูลทีเ่ รียกว่า BUS


้ ะเชอ

** โดยทั่วไป เราอาจเรียก CPU ว่า Processor และสาหรับเครือ


่ ง personal
computer (PC) อาจเรียก CPU ว่า Microprocessor

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 15


ื่ มต่อภายในระบบคอมพิวเตอร์
การเชอ
่ งทางในการติดต่อระหว่าง CPU กับ Main Memory และ Input / Output Unit
• ชอ
จะเชอ ื่ มต่อกันผ่าน Bus ซงึ่ เป็ นเสมือนถนนกลางสาหรับการสง่ ข ้อมูลระหว่างกัน
• สาหรับอุปกรณ์ในสว่ น Input / Output Unit นัน ้ แต่ละตัวจะเชอ ื่ มต่อเข ้ากับ Bus
ได ้โดยผ่านชอ ่ งทางทีเ่ รียกว่า พอร์ต (Port) ซงึ่ เป็ นเสมือนจุดเชอ ื่ มต่อสญ
ั ญาณ
ข ้อมูลจากอุปกรณ์แต่ละตัวเข ้ากับ Bus
• แต่ละ port จะมี address ประจาตัวของ port นัน ้ ๆ เมือ
่ CPU ต ้องการติดต่อกับ
port ใด ก็จะอ ้าง address ของ port นัน ้
• สาหรับ address นัน ้ ตาแหน่ง เสมือนกับบ ้านเลขที่ ซงึ่ ถ ้าเป็ น
้ เป็ นตัวเลขทีใ่ ชระบุ
ใน memory ก็จะหมายถึงตาแหน่งของข ้อมูลทีเ่ ก็บไว ้ใน memory แต่ถ ้าเป็ น
address ของ port ก็จะหมายถึงตาแหน่งของ port แต่ละตัว

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 16


ื่ มต่อภายในระบบคอมพิวเตอร์
การเชอ
CPU

Control
CPU Interconnection
Unit

ALU

Main
Registers
Memory

BUS

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 17


สญ ิ
ั ญาณนาฬกาของ CPU (System Clock)

• ในระบบคอมพิวเตอร์จะใชวงจรคริ สตัล (Quartz Crystal Circuit) ขนาดเล็กเป็ นตัว
ควบคุมสญ ั ญาณนาฬกา ิ ซงึ่ จะใชเป็
้ นตัวควบคุมการทางานของระบบ เพือ ่ ให ้
อุปกรณ์ตา่ งๆ ทางานสม ั พันธ์กน

• ระบบสญั ญาณนาฬกาท ิ างานคล ้ายกับการเต ้นของหัวใจเป็ นจังหวะด ้วยอัตราคงที่
โดยจะเป็ นการสง่ สญั ญาณไฟฟ้ าในลักษณะของ pulse signal ซงึ่ จะมีคา่ ทาง
ลอจิกเป็ น 0 หรือ 1 ตามรูป
1 คาบเวลา
ลอจิก 1

ลอจิก 0
• เมือ
่ มีสญ ิ
ั ญาณนาฬกาเป็ นลอจิก 1 ก็จะเป็ นการกระตุ ้นให ้วงจรต่างๆ ในระบบเกิด
การเปลีย ่ นสถานะไปพร ้อมๆ กัน ซงึ่ ก็คอ
ื การเปลีย
่ นแปลงของข ้อมูลต่างๆ ใน
ระหว่างการประมวลผลนั่นเอง
• หน่วยการทางานต่างๆ ในระบบจะมองเห็นการเปลีย ่ นแปลงของข ้อมูลซงึ่ กันและ
กัน ตามจังหวะของสญ ั ญาณนาฬกา ิ

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 18


ิ (System Clock)
ั ญาณนาฬกา
สญ
• หน่วยทีใ่ ชวั้ ดสญ ิ
ั ญาณนาฬกาจะใช ้ วย เฮริ ตซ ์ (Hertz) ซงึ่ เป็ นการวัดความถี่
หน่
ของสญั ญาณนาฬการ ิ
1 Hertz จะหมายถึง สญ ั ญาณนาฬกา ิ 1 คาบ (ลูก, รอบ) ใชเวลา ้ 1 วินาที
100 Hertz จะหมายถึง สญ ิ
ั ญาณนาฬกามี ความถี่ 100 ลูกต่อวินาที
• หากว่าคอมพิวเตอร์เครือ่ งหนึง่ ทางานด ้วยความถีส ั ญาณนาฬกา
่ ญ ิ 2.4 GHz จะ
หมายความว่า CPU จะถูกกระตุ ้นด ้วยสญ ั ญาณนาฬกา ิ 2.6 พันล ้านลูกต่อวินาที

• ในการออกแบบขัน ้ ตอนการทางานสาหรับการคานวณหรือ operation หนึง่ ๆ จะมี


การออกแบบไว ้ว่าการทางานนัน ้ จะต ้องใชส้ ญ ั ญาณนาฬกากี ิ ล
่ ก
ู จึงจะทางานครบ
ทุกขัน ้ ตอน ซงึ่ หากว่าสญ
ั ญาณนาฬกามี ิ ความถีส
่ งู ก็จะทาให ้การทางานนัน ้ ๆ เร็ว
ขึน
้ ด ้วย
• ความถีข ่ องสญ ิ
ั ญาณนาฬกาสามารถใช ้
บอกความเร็ วในการทางานของ CPU ได ้
ซงึ่ โดยทั่วไปเราจะเรียกว่า clock speed
• หากเราพิจารณา cpu หลายๆ ตัว ทีม ่ ส
ี ถาปั ตยกรรมและโครงสร ้างการทางานของ
คาสงั่ ต่างๆ เหมือนกัน cpu ตัวทีม่ ี clock speed สูงกว่าก็ยอ ่ มจะทางานได ้เร็วกว่า

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 19


การวัดความเร็วของ CPU
• หากเราพิจารณา cpu หลายๆ ตัว ทีม ่ ส
ี ถาปั ตยกรรมและโครงสร ้างการทางานของ
คาสงั่ ต่างๆ ไม่เหมือนกัน เราก็ไม่สามารถใช ้ clock speed เปรียบเทียบความเร็วใน
การทางานได ้โดยตรง เชน ่
– Intel Pentium 4 CPU 3.60GHz
– Intel Core i5 CPU M 540 @ 2.53GHz
ั ความเร็วของ CPU อีกลักษณะหนึง่ ซงึ่ ใชเปรี
• วิธวี ด ้ ยบเทียบ CPU ทีม ่ ส
ี ถาปั ตยกรรม
แตกต่างกัน คือใชวิ้ ธวี ดั ความเร็วในการประมวลผลคาสงั่ เฉพาะใดๆ ในเวลา 1
วินาที เป็ นการวัดทีม
่ ห
ี น่วยเป็ น Instructions per second (IPS)
• ปกติจะจานวนคาสงั่ ทีท ่ างานได ้ใน 1 วินาทีจะมีขนาดเป็ นหลักล ้าน ดังนัน

โดยทั่วไปจะใชหน่ ้ วยเป็ น Million instructions per second (MIPS)
http://en.wikipedia.org/wiki/Instructions_per_second
• สาหรับเครือ ่ งคอมพิวเตอร์ทม
ี่ พ ี ลังในการคานวณสูงๆ เชน่ mainframe หรือ
supercomputer ซงึ่ มักจะใชในการค
้ ้
านวณทางด ้านวิทยาศาสตร์ จะใชการวั ดจาก
คาสงั่ ทีท
่ างานกับตัวเลขทศนิยม (floating-point) ซงึ่ จะใชหน่
้ วยการวัดเป็ น
FLoating point OPerations per Second (FLOPS) หมายถึงจานวนคาสงั่ ที่
ทางานได ้ใน 1 วินาที
– MFLOPS หมายถึง Million FLOP, TFLOPS หมายถึง Trillion FLOPS
http://en.wikipedia.org/wiki/Supercomputer

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 20


ั ้ การทางานของคอมพิวเตอร์
ระดับชน
• เราอาจมองคอมพิวเตอร์เป็ น 6 ระดับชน ั ้ (level) ดังภาพ โดยที่ level 5 จะมีความ
ิ กับผู ้ใชมากที
ใกล ้ชด ้ ส ่ ด
ุ และ level 0 จะเป็ นวงจรพืน ้ ฐานของเครือ่ ง

Lever 5 Problem-Oriented Language Level


Translation by Compiler

Lever 4 Assembly Language Level


Translation by Assembler

Lever 3 Operating System Machine Level


Partial interpretation by Operating System
Lever 2 Instruction Set Architecture Level
Interpretation by Microprogram or Direct Execution
Lever 1 Microarchitecture Level
Hardware Operation

Lever 0 Digital Logic Level

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 21


ั ้ การทางานของคอมพิวเตอร์
ระดับชน
Level 0 – Digital Logic
• คือวงจรฮาร์ดแวร์ของคอมพิวเตอร์ซงึ่ เป็ นวงจรดิจต ิ อล (Digital Circuit) โดยมี
logic gates เป็ นองค์ประกอบหลัก
• logic gate เป็ นวงจรทางดิจต ิ อลทีส่ ร ้างขึน
้ จากทรานซส ิ เตอร์ (transistor) ให ้มี
คุณสมบัตใิ นการคานวณทางตรรกะ เชน ่ การดาเนินการ AND, OR, NOT เป็ นต ้น
• Logic gate จะตอบสนองต่อสญ ั ญาณไฟฟ้ าเพียง 2 แบบ คือสญ ั ญาณสูงและตา่
ซงึ่ จะอิงจากค่า voltage (0 - 5 V) โดยเมือ ่ มองในระดับสูงขึน
้ เราจะมองว่ามีคา่
สญั ญาณทีเ่ ป็ นไปได ้ 2 ค่า คือ 0 หรือ 1 ซงึ่ เราจะเรียกว่าค่า Binary

Level 1 – Microarchitecture
• ในระดับชน ั ้ นีก
้ ค็ อื ตัวระบบการทางานของ microprocessor นั่นเอง ซงึ่
ประกอบด ้วยรีจส ิ เตอร์ตา่ งๆ รวมกันเป็ นหน่วยความจาภายใน และวงจรที่
ประมวลผลทางคณิตศาสตร์และลอจิก (ALU) โดยมีการสง่ ข ้อมูลมาประมวลผล
ร่วมกันได ้ เชน ่ การบวกข ้อมูลทีเ่ ก็บอยูใ่ นรีจสิ เตอร์สองตัว เป็ นต ้น
• ในชนั ้ นีก
้ ารควบคุมการประมวลผลและการทางานต่างๆ จะใชค้ าสงั่ ควบคุม
(microinstruction) ทีผ ่ ู ้ผลิด microprocessor ออกแบบมาสาหรับควบคุมการ
ทางานต่างๆ ของระบบ ซงึ่ โดยปกติจะไม่ได ้เปิ ดเผยให ้ผู ้ใชงาน ้

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 22


ั ้ การทางานของคอมพิวเตอร์
ระดับชน
Level 2 - Instruction Set Architecture (ISA)
• เป็ นสว่ นของชุดคาสงั่ ต่างๆ ทีใ่ ชส้ งั่ งานให ้ microprocessor ทางาน ซงึ่ ผู ้ผลิต
microprocessor จัดไว ้ให ้กับผู ้ใชงาน ้ โดยในการทางานจริงแต่ละคาสงั่ จะถูกแปลง
ไปเป็ น microinstruction อีกทีหนึง่
• ชุดคาสงั่ เหล่านีจ
้ ะแทนด ้วยรหัสตัวเลขฐานสอง ซงึ่ เสมือนเป็ นภาษาทีเ่ ครือ ่ ง
คอมพิวเตอร์ (microprocessor) เข ้าใจ โดยจะเรียกว่า machine language หรือ
“ภาษาเครือ ่ ง”
• เราสามารถนาชุดคาสงั่ เหล่านีม ้ าเขียนเป็ นโปรแกรมเพือ ่ ให ้คอมพิวเตอร์ประมวลผล
ตามต ้องการได ้

Level 3 – Operating System Machine


• เป็ นชน ั ้ ของระบบปฏิบต ิ าร (operating system) ซงึ่ จะเชอ
ั ก ื่ มโยงระหว่างโปรแกรม
ต่างๆ กับอุปกรณ์ทางฮาร์ดแวร์
• หน ้าทีห ่ ลักของระบบปฏิบต ั กิ าร คือ การสร ้างสว่ นติดต่อกับผู ้ใชเพื
้ อ่ ควบคุมสงั่ งาน
คอมพิวเตอร์, การควบคุมอุปกรณ์ตา่ งๆ ในระบบ และการจัดสรรทรัพยากรระบบ
• องค์ประกอบของระบบปฏิบต ั ก ิ าร ได ้แก่ process management, memory
management, file management, I/O system management, storage
305171management, networking,
– Computer Programming โดย อ.สริ ภพprotection
คชร ัตน์ system, command-interpreter system 23
ั ้ การทางานของคอมพิวเตอร์
ระดับชน
Level 4 – Assembly Language
• เนือ
่ งจากภาษาเครือ ่ งจะกาหนดไว ้เป็ นรหัสตัวเลขฐานสอง ซงึ่ ยากต่อการเขียนเป็ น
โปรแกรม ดังนัน ้ จึงมีการกาหนดสญ ั ลักษณ์ (symbolic) แทนคาสงั่ ต่างๆ ขึน้ มา
เชน ่ ADD แทนคาสงั่ บวก, MOV แทนคาสงั่ ย ้ายข ้อมูลในหน่วยความจา เรียกว่า
ภาษาแอสแซมบลี (assembly language)
• ในยุคแรกๆ ภาษาแอสแซมบลี ถือเป็ นภาษาหลักทีใ่ ชเขี ้ ยนโปรแกรมเพือ ่ ควบคุม
การทางานของคอมพิวเตอร์ แต่ในปั จจุบน ้
ั นิยมใชภาษาระดับสูงมากกว่า
• ภาษาแอสแซมบลี ยังคงถูกใชงานกั ้ บการเขียนโปรแกรมทีต ่ ้องติดต่อกับฮาร์ดแวร์
โดยตรง และต ้องการประสท ิ ธิภาพในการทางานสูงสุด เชน ่ การเขียนโปรแกรมใน
Microcontroller
• โปรแกรมทีเ่ ขียนด ้วยภาษาแอสแซมบลี จะถูกแปลงไปเป็ นภาษาเครือ ่ ง โดยใชตั้ ว
แปลงทีเ่ รียกว่า Assembler

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 24


ั ้ การทางานของคอมพิวเตอร์
ระดับชน
Level 5 – Problem-Oriented Language
• เป็ นระดับชนั ้ ทีโ่ ปรแกรมเมอร์สามารถเขียนโปรแกรมควบคุมควบคุมการทางานของ
คอมพิวเตอร์ด ้วยภาษาระดับสูง (High Level Language)
• ตัวทีจ่ ะทาการแปลงภาษาโปรแกรมระดับสูงนีไ้ ปเป็ นภาษาแอสแซมบลี เรียกว่า
Compiler
• ภาษาระดับสูง ถือเป็ นภาษาทีเ่ ขียนโปรแกรมได ้ง่ายกว่าภาษาแอสแซมบลีมาก

และเป็ นภาษาหลักทีใชในการเขี ยนโปรแกรมคอมพิวเตอร์โดยทั่วไป
• ภาษาคอมพิวเตอร์โดยสว่ นใหญ่ทเี่ ราพบเห็นมักจะเป็ นภาษาระดับสูง เชน
่ C,
Java, C#, Python, PHP, Pascal เป็ นต ้น

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 25


วิวัฒนาการของคอมพิวเตอร์
ยุคที่ 1 (The First Generation : ค.ศ 1946-1958)

• คอมพิวเตอร์ในยุคนีใ้ ชหลอดสู ญญากาศ (vacuum tube) และรีเลย์ เป็ นอุปกรณ์
หลักในวงจร และควบคุมการทางานโดยวิธเี จาะชุดคาสงั่ ลงในบัตรเจาะรู
• หลอดสูญญากาศ สามารถใชเป็ ้ นตัวขยายสญั ญาณ และเปิ ดปิ ดสญ
ั ญาณไฟฟ้ า จึง

ถูกนามาใชในการประมวลผลของคอมพิ วเตอร์
• แต่หลอดสูญญากาศมีข ้อเสย ี คือต ้องการพลังงานมาก อายุใชงานส
้ ั ้ และทีส
น ่ าคัญ
คือมีขนาดใหญ่ ซงึ่ ถือเป็ นความไม่สมบูรณ์ของคอมพิวเตอร์ในยุคนี้ ตัวอย่างเชน ่

คอมพิวเตอร์ ENIAC ต ้องใชหลอดสู ญญากาศถึง 18,000 หลอดต ้องการพลังงาน
ไฟฟ้ าถึง 140 กิโลวัตต์และหนักถึง 30 ตัน

หลอดสูญญากาศ
เครือ
่ ง ENIAC บัตรเจาะรู
305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 26
วิวัฒนาการของคอมพิวเตอร์
ยุคที่ 2 (The Second Generation : ค.ศ 1959-1964)

• ในยุคนีใ้ ชทรานซ ิ เตอร์ (Transistor) เป็ นตัวหลักของวงจรแทนทีห
ส ่ ลอด
สูญญากาศ โดยทรานซส ิ เตอร์เป็ นอุปกรณ์ทพ ี่ ัฒนาโดยนักวิทยาศาสตร์จาก
ห ้องปฏิบต ั ก ิ ารเบลล์ (Bell Lab.) โดยมีขนาดเล็กกว่าหลอดสูญญากาศมาก ราคา
ถูกกว่า ทางานได ้เร็วกว่า เสถียรกว่า และกินพลังงานน ้อยกว่า

• มีการใชวงแหวนแม่ เหล็ก (Magnetic Core) เป็ นหน่วยความจา ใช ้ Disk และเทป
แม่เหล็ก (Magnetic Tape) เป็ นสอ ื่ บันทึกข ้อมูล
• คอมพิวเตอร์ในยุคนีส ้
้ ามารถใชภาษาระดั บสูงในการโปรแกรมได ้ เชน ่ ภาษา
FORTRAN และ COBOL

วงแหวนแม่เหล็ก เทปแม่เหล็ก
ิ เตอร์
ทรานซส

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 27


วิวัฒนาการของคอมพิวเตอร์
ยุคที่ 3 (The Third Generation : ค.ศ 1965-1971)
• ในยุคนีค ้ วามรู ้ด ้านการผลิตวงจรอิเล็กทรอนิกสไ์ ด ้พัฒนาไปมาก และได ้มีการสร ้าง
วงจรรวม (Integrated Circuit) หรือ IC ขึน ้ โดยภายใน IC สามารถบรรจุทราสซ ิ
สเตอร์ได ้จานวนมาก ทาให ้คอมพิวเตอร์มข ี นาดเล็กลงมาก และทางานได ้เร็วขึน

• เกิดมินค ิ อมพิวเตอร์เครือ ่ งแรกขึน
้ มา ได ้แก่ รุน
่ PDP-8 ทีผ
่ ลิดโดย Digital
Equipment Corporation (DEC)
• มีภาษาระดับสูงใหม่ๆ เกิดขึน ้ มากมาย และได ้มีการพัฒนาโปรแกรม
ระบบปฏิบต ั ก
ิ าร (Operating System) ขึน ้ มาใชด้ ้วย

Integrated Circuit (IC)

PDP-8 Computer
305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 28
วิวัฒนาการของคอมพิวเตอร์
ยุคที่ 4 (The Fourth Generation : ค.ศ 1972-ปั จจุบน ั )
• ในยุคนีไ้ ด ้มีการผลิตวงจรรวมความจุสงู (Large-scale Integrated Circuit) หรือ
LSI ขึน้ มา โดยภายในตัว LSI สามารถบรรจุวงจรต่างๆ ได ้มากขึน ้ กว่า IC ในยุค
ก่อนหน ้า และได ้มีการพัฒนาต่อเนือ ่ งมาเป็ นวงจรรวมความจุสงู มาก (Very Large-
scale Integrated Circuit) ซงึ่ สามารถบรรจุทรานซส ิ เตอร์ได ้นับล ้านตัว
• คอมพิวเตอร์ในยุคนีใ้ ช ้ Microprocessor เป็ นหน่วยประมวลผลกลาง โดย
Microprocessor ตัวแรก คือ Intel 4004 ซงึ่ ทางานด ้วยสญ ั ญาณนาฬกา ิ 108 kHz
• ในยุคนีจ ้ งึ มีการผลิดคอมพิวเตอร์ขนาดเล็กออกมาเรียกว่า Microcomputer ซงึ่ ก็
คือคอมพิวเตอร์ขนาดตัง้ โต๊ะทีม ่ ี Microprocessor เป็ นหน่วยประมวลผลกลาง

Microprocessor Microcomputer

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 29


ระบบข ้อมูลในคอมพิวเตอร์
• ระบบคอมพิวเตอร์โดยทั่วไปในปั จจุบน ั ทางานในระบบดิจต ิ อล ซงึ่ ใชตั้ วเลขและ
หลักคณิตศาสตร์ในการประมวลผล โดยในตัง้ แต่ระดับ Assembly Language
Level ลงไปจนถึงระดับ Digital Logic Level จะทางานกับข ้อมูลทีม ่ องเป็ น
ตัวเลขฐานสอง (Binary Number)
• ในหน่วยความจาของคอมพิวเตอร์ก็จะเก็บข ้อมูลในลักษณะของเลขฐานสอง โดย
แต่ละตาแหน่งของหน่วยความจาจะสามารถเก็บค่าทีเ่ ป็ นไปได ้ 2 ค่า คือ 0 หรือ 1
ซงึ่ เราจะเรียกว่า bit (บิต)
• ข ้อมูล 1 bit จะมีคา่ เป็ น 0 หรือ 1
• ข ้อมูลทีเ่ รียงต่อกันจานวน 8 bits เราจะเรียกว่า byte (ไบต์)
• Byte ถือเป็ นหน่วยมาตรฐานของข ้อมูลในคอมพิวเตอร์

Memory 0 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 1 1 1 1

1 bit 1 byte

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 30


ระบบเลขฐานสอง (Binary)
• ระบบจานวนโดยทั่วไป เราจะคุ ้นเคยกับเลขในฐานสบ ิ ซงึ่ เป็ นฐานมาตรฐานทีเ่ รา

ใชแสดงค่ าของจานวนใดๆ
• แต่เนือ
่ งจากระบบคอมพิวเตอร์จะทางานโดยอาศย ั ตัวเลขฐานสองเป็ นพืน ้ ฐานใน
การคานวณ ในขณะทีต ่ วั เลขทีผ ้
่ ู ้ใชจะเข ้าใจได ้ง่ายคือตัวเลขฐานสบ ิ ดังนัน ้ เราจึง
ต ้องเข ้าใจวิธกี ารแปลงค่าตัวเลขจากฐานสบ ิ ไปเป็ นฐานสอง และจากฐานสองไป
เป็ นฐานสบ ิ
• สาหรับจานวนเต็มในระบบเลขฐานต่างๆ จะมีรป ู แบบทีเ่ ป็ นมาตรฐานในการแปลง
ค่าออกมาเป็ นจานวนในฐานสบ ิ ดังนี้
ให ้ xk xk 1 xk 2 ... x1 แทนเลขในฐาน n ทีม ่ ขี นาด k หลัก
โดยที่ xi แทนค่าในหลักที่ i
ค่าจานวนในฐานสบ ิ = ( xk  nk 1 )  ( xk 1  nk 2 )  ( xk 2  nk 3 )  ...  ( x1  n0 )
k

=  i
i 1
( x  n )
i 1

่ (101)2  (1 22 )  (0  21 )  (1 20 )  4  0  1  5


เชน
(167)8  (1 82 )  (6  81 )  (7  80 )  64  48  7  119
305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 31
ระบบเลขฐานสอง (Binary)
ิ ได ้ตัง้ แต่
• สาหรับเลขฐานสอง ขนาด n bits จะสามารถแทนค่าจานวนในฐานสบ
0 จนถึง 2  1
n

ตัวอย่าง 1
เลขฐานสอง 4 bits เก็บค่าได ้ตัง้ แต่ 0 ถึง 2  1  15
4

นั่นคือ 0000, 0001, 0010, 0011, …, 1110, 1111


รวมแล ้วเก็บค่าตัวเลขได ้ทัง้ หมด 16 ค่า

ตัวอย่าง 2
เลขฐานสอง 8 bits เก็บค่าได ้ตัง้ แต่ 0 ถึง 2  1  255
8

นั่นคือ 00000000, 00000001, …, 11111111


รวมแล ้วเก็บค่าตัวเลขได ้ทัง้ หมด 256 ค่า

• เลขฐานสองขนาด 16 bits เก็บข ้อมูลได ้ 2


16
 65536 ค่า

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 32


ขนาดข ้อมูลในหน่วยความจา
• ในหน่วยความจาจะเก็บข ้อมูลเป็ นเลขฐานสอง เป็ น bit เรียงกันไป
• ขนาดของหน่วยความจาจะวัดเป็ นหน่วยของ byte
• ถ ้าหน่วยความจาบรรจุข ้อมูลได ้มากสุดขนาด 128 bits ก็แสดงว่าหน่วยความจานัน

มีขนาด 128/8 = 16 bytes

• สาหรับการวัดขนาดของหน่วยความจาในทางคอมพิวเตอร์ จะมีความหมายของ
prefix สาหรับหน่วยวัดทีแ
่ ตกต่างจากมาตรฐานโดยทั่วไป คือ
– ปกติ 1 kilo- จะแทน 103 = 1000
– แต่ในทางคอมพิวเตอร์ 1 kilobyte จะแทน 210 = 1024 bytes ซงึ่ ก็มที ม
ี่ า
จากการทีห ่ น่วยความจาในคอมพิวเตอร์มักจะออกแบบให ้มีขนาดเป็ น 2n
– 1 megabyte = 220 = 1048576 bytes
– 1 kilobyte นิยมเขียนย่อๆ ด ้วย 1 kb (พัน)
– 1 megabyte นิยมเขียนย่อๆ ด ้วย 1 MB (ล ้าน)
– 1 gigabyte (230) นิยมเขียนย่อๆ ด ้วย 1 GB (พันล ้าน)
– 1 terabyte (240) นิยมเขียนย่อๆ ด ้วย 1 TB (ล ้านล ้าน)

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 33


ิ หก (Hexadecimal)
ระบบเลขฐานสบ
• เลขฐานสองถือว่าเป็ นการแสดงจานวนทีม ่ ข
ี นาดของหลักยาวทีส ่ ด
ุ เพราะแต่ละ
หลักมีคา่ ได ้เพียง 0 หรือ 1 เท่านัน ้ ซงึ่ ทาให ้การแสดงค่าข ้อมูลโดยใชเลขฐานสอง

อาจไม่คอ ่ ยสะดวกในการอ่านค่า และใชเนื ้ อ ้ ทีใ่ นการแสดงค่าข ้อมูลค่อนข ้างมาก
• ดังนัน้ จึงนิยมแสดงตัวเลขฐานสองในคอมพิวเตอร์ ด ้วยตัวเลขฐาน 16 ซงึ่ จะชว่ ย
ให ้ตัวเลขดูสน ั ้ กระชบ
ั อ่านง่าย อีกทัง้ ยังสามารถแปลงค่าไปกลับได ้ง่าย
เชน่ (000101101111)2  (16F )16

• สาหรับตัวเลขฐานสบ ิ หก จะมีตวั อักษรประจาหลักแทนด ้วย 1, 2, 3, …, 9, A, B,


C, D, E, F โดยที่ A แทนค่า 10, B แทนค่า 11, C แทนค่า 12, D แทนค่า 13, E
แทนค่า 14 และ F แทนค่า 15
• การแปลงค่าจากฐานสองไปสูฐ ่ าน 16 สามารถใชเทคนิ
้ คการจัดกลุม
่ ตัวเลขในฐาน
สองเป็ นกลุม
่ ละ 4 ตัว โดยแบ่งจากขวาไปซาย ้ แล ้วแปลงตัวเลขแต่ละกลุม ่ เป็ น
ฐานสบ ิ จากนัน้ จึงแปลงเป็ นตัวเลขในฐานสบ ิ หก โดยทาแยกกันเป็ นกลุม ่ ๆ
เชน่ 0001 0110 1111

1 6 15 ิ หก
=> 16F ฐานสบ

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 34


ิ ไปเป็ นฐานอืน
การแปลงเลขฐานสบ ่ ๆ
• การแปลงเลขฐานสบ ิ ไปเป็ นฐานอืน่ ๆ ทาได ้โดยวิธห
ี ารด ้วยตัวเลขของฐานที่
ต ้องการจนกระทั่งได ้ผลลัพธ์เป็ นศูนย์ แล ้วนาเศษมาเรียงกันตามลาดับ จากตัว
่ วั แรก
สุดท ้ายไปสูต
ตัวอย่าง 1 จงเปลีย ่ น 38 ให ้เป็ นเลขฐานสอง
2 ) 38
2 ) 19 เศษ 0
2 ) 9 เศษ 1
2 ) 4 เศษ 1
2 ) 2 เศษ 0
2 ) 1 เศษ 0
0 เศษ 1 คาตอบคือ (100110)2
ตัวอย่าง 2 จงเปลีย ่ น 125 ให ้เป็ นเลขฐานสบ ิ หก
16 ) 38
16 ) 2 เศษ 6
0 เศษ 2 คาตอบคือ (26)16

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 35


รหัสข ้อมูลคอมพิวเตอร์
• คอมพิวเตอร์จะเก็บข ้อมูลทุกอย่างเป็ นเลขฐานสอง ซงึ่ กลุม ่ ของเลขฐานสองทีเ่ ก็บ
อยูใ่ นคอมพิวเตอร์นัน ้ จะเรียกว่า รหัส (code)
• ข ้อมูลต่างๆ ไม่วา่ จะเป็ น ตัวเลข ตัวอักขระ (สญ ั ลักษณ์ตา่ งๆ ทีไ่ ม่สามารถใชใน ้
การคานวณได ้ เชน ่ ตัวอักษร และเครือ่ งหมายต่างๆ) รูปภาพ เสย ี ง วีดโี อ เมือ
่ จะ
นาไปประมวลผลในคอมพิวเตอร์ จะต ้องถูกแปลงไปเป็ นรหัสในรูปแบบของตัว
เลขฐานสองทัง้ สน ิ้
• การแปลงข ้อมูลต่างๆ เป็ นรหัสคอมพิวเตอร์ จะเรียกว่า การเข ้ารหัส (encoding)
ซงึ่ รหัสคอมพิวเตอร์จะมีอยูห ่ ลายรูปแบบ เชน ่ Binary Code, BCD (Binary Coded
Decimal), ASCII, Unicode
• การถอดรหัสออกมาเป็ นข ้อมูลดัง้ เดิม จะเรียกว่า การถอดรหัส (decoding)
• ตัวเข ้ารหัสและถอดรหัส จะเรียกว่า encoder และ decoder ตามลาดับ

• สาหรับข ้อมูลประเภทข ้อความ ซงึ่ จะประกอบไปด ้วยตัวอักขระต่างๆ จะใชการ ้


เข ้ารหัสแบบ ASCII หรือ Unicode
• ถ ้าเป็ นข ้อมูลรูปภาพ ก็จะมีรป ่ JPEG, GIF, PNG เป็ นต ้น
ู แบบการเข ้ารหัส เชน
• ถ ้าเป็ นข ้อมูลเสยี ง ก็จะมีรป ่ WAV, AVI เป็ นต ้น
ู แบบการเข ้ารหัส เชน

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 36


รหัส ASCII และ Unicode
• คาว่า ASCII อ่านว่า แอสกี้ ย่อมาจาก American Standard Code for
Information Interchange
• รหัส ASCII เป็ นการใชตั้ วเลขฐานสองขนาด 8 bit แทนตัวอักขระ 1 ตัว
• ข ้อมูลทีจ ้ ส ASCII โดยปกติกค
่ ะแทนโดยใชรหั ็ อื ข ้อมูลทีร่ ับเข ้ามาจาก keyboard
เชน ่ ตัวเลข, ตัวอักษร, space, enter, shift, tab, delete เป็ นต ้น หรือพวก
สญั ลักษณ์พเิ ศษต่างๆ ซงึ่ อาจจะมีวธิ ี input ข ้อมูลในลักษณะพิเศษ เชน ่ Ȃ, Õ,
ý, ©, ¢ อาจจะต ้องสงั่ insert symbol จากโปรแกรมต่างๆ

• เนือ่ งจากข ้อมูลขนาด 8 bit แทนตัวอักษรได ้เพียง 256 ตัวเท่านัน ้ ซงึ่ ไม่เพียงพอ
ในการรองรับภาษาต่างๆ ทั่วโลก เชน ่ จีน ญีป
่ น ุ่ ดังนัน
้ จึงมีการสร ้างรหัส Unicode
ซงึ่ มีขนาด 16 bit ให ้สามารถรองรับจานวนอักขระได ้มากขึน ้
• โปรแกรมคอมพิวเตอร์รน ้
ุ่ ใหม่จะนิยมใชการเข ้ารหัสแบบ Unicode มากกว่าแบบ

ASCII เพราะจะทาให ้รองรับการใชงานในหลายภาษาได ้

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 37


รหัส ASCII และ Unicode
ตารางแสดงรหัส ASCII

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 38


การแทนค่าเลขจานวนเต็ม (Integer)
• พิจารณาการแทนค่าจานวนเต็มด ้วยเลขฐานสองขนาด n bits
• หากเก็บแบบไม่มเี ครือ ่ งหมายก็จะสามารถเก็บค่าได ้ตัง้ แต่ 0 ถึง 2n - 1
• หากเป็ นการเก็บตัวเลขจานวนเต็มทีม ่ งหมาย ( +/- ) อาจใช ้ 1 bit แทน
่ เี ครือ
เครือ ่ งหมาย เรียกว่าการแทนแบบ Signed-Magnitude โดยค่าตัวเลขทีเ่ ก็บได ้ จะ
มีตงั ้ แต่
–(2n-1 – 1) ถึง +(2n-1 – 1)

Sign
Magnitude
bit
1 แทนลบ
0 แทนบวก

ตัวอย่าง
ข ้อมูล 8 bit แทนค่าได ้ในชว่ ง -127 ถึง +127
ข ้อมูล 16 bit แทนค่าได ้ในชว่ ง -32,767 ถึง + 32,767
ข ้อมูล 32 bit แทนค่าได ้ในชว่ ง -2,147,483,647 ถึง + 2,147,483,647

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 39


การแทนค่าเลขจานวนเต็ม (Integer)
• ยังมีวธิ เี ก็บตัวเลขจานวนเต็มแบบมีเครือ
่ งหมายอีกแบบคือ การแทนค่าแบบ
2’s Complement ซงึ่ จะทาให ้เก็บค่าตัวเลข ได ้ตัง้ แต่
–(2n-1) ถึง +(2n-1 – 1)
ตัวอย่าง
ข ้อมูล 8 bit แทนค่าได ้ในชว่ ง -128 ถึง +127
ข ้อมูล 16 bit แทนค่าได ้ในชว่ ง -32,768 ถึง + 32,767
ข ้อมูล 32 bit แทนค่าได ้ในชว่ ง -2,147,483,648 ถึง + 2,147,483,647

• หากแทนในแบบ Signed-Magnitude จะมีคา่ 0 ซา้ กัน 2 แบบ เชน ่ 0000 กับ


10000 จะมีคา่ เป็ น 0 เหมือนกัน
• แต่การแทนในแบบ 2’s Complement จะหลีกเลีย ่ งการแทนเลข 0 ซ้ากันได ้
• วิธก ้ ดเป็ นเครือ
ี ารแทนค่า จะมี bit ซายสุ ่ งหมาย (0-บวก, 1-ลบ) โดยการแทนค่า
บวกจะเหมือนกับแบบ Signed-Magnitude
• หากเป็ นค่าลบ ให ้แทนด ้วยค่าบวกก่อน แล ้วจึงกลับค่าแต่ละ bit เป็ นค่าตรงข ้าม
(จาก 1 เป็ น 0 และจาก 0 เป็ น 1) จากนัน ้ จึงบวกด ้วย 1
เชน่ ค่า -12 แทนด ้วย 00001100 ก่อน แล ้วจึงกลับ bit เป็ น 11110011 จากนัน ้
จึงบวกด ้วย 1 ได ้เป็ น 11110100

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 40


การแทนค่าเลขจานวนทศนิยม
• เลขทศนิยมหรือ Floating Point สามารถเขียนอยูใ่ นรูปของเลขยกกาลัง
่ -12.345 มีคา่ เท่ากับ
เชน exponent
- 12345 x 10-2
sign
mantissa Radix (ค่าฐาน)

้ วยความจาขนาด 32 bits จะมี


• หากพิจารณาการเก็บตัวเลขทศนิยมโดยใชหน่
ลักษณะการเก็บข ้อมูลดังนี้

Sign
Exponent 8 bits Exponent 23 bits
bit

1 แทนลบ
0 แทนบวก

• ค่าของข ้อมูลจะคานวณได ้จากค่า sign x mantissa x radixexponent


• สาหรับค่า exponent สามารถเป็ นบวกหรือลบก็ได ้ ตามวิธก
ี ารแทนค่าแบบ
Singed-Magnitude

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 41


การเก็บข ้อมูลรูปภาพ
• ข ้อมูลทีเ่ ป็ นรูปภาพมีวธิ เี ก็บข ้อมูลทีห
่ ลากหลาย แต่วธิ ท
ี เี่ ป็ นพืน
้ ฐานคือการเก็บ
แบบ Bitmap ซงึ่ เป็ นการแทนสใี ห ้กับจุดย่อยๆ ของภาพทีเ่ รียกว่าพิกเซล (pixel)

• ค่าส ี จะแทนด ้วยรหัส RGB (Red,Green,Blue)


• ความเข ้มของสม ี ค
ี า่ ระหว่าง 0-255


เชน ี ้ าเงินแทนด ้วย (0, 0, 255)
สน

ี ว่ งแทนด ้วย (150, 0 150)


สม

• แต่ละ pixel แทนด ้วยค่าส ี 3 ส ี (R,G,B) ซงึ่ แต่ละสจ


ี ะใชข้ ้อมูลขนาด 1 byte (8 bit
้ 1 pixel จะใชข้ ้อมูลขนาด 3 bytes
ได ้ค่า 0-255) ดังนัน
• ถ ้าเก็บข ้อมูลรูปภาพในแบบ Bitmap ขนาด 10x10 pixels ก็จะใชเนื ้ อ
้ ทีใ่ นการเก็บ
ข ้อมูล เท่ากับ 3x10x10 = 300 bytes

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 42


ี ง
การเก็บข ้อมูลเสย
• คลืน ี งจะถูกเก็บในคอมพิวเตอร์ในรูปแบบของตัวเลขฐานสองเชน
่ เสย ่ กัน โดยจะ
เก็บค่าสญ ั ญาณเสย ี งในแต่ละจังหวะเวลา ขึน
้ อยูก
่ บ ่ สญ
ั อัตราการสุม ั ญาณ
(sampling rate)

ี งทาได ้มากมายหลายรูปแบบ เชน


• การเข ้ารหัสข ้อมูลเสย ่ MIDI, WAV, MP3 เป็ น
ต ้น

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 43


Device Driver
• การทีโ่ ปรแกรมจะติดต่ออุปกรณ์ตา่ งๆ เชน ่ keyboard, monitor, printer, modem,
sound card ได ้นัน ้ อุปกรณ์ตา่ งๆ จะต ้องจัดเตรียมคาสงั่ สาหรับการควบคุมอุปกรณ์
นัน
้ ๆ ให ้ตัวระบบปฏิบต ั ก ิ าร (Operating System) รู ้จักก่อน
• เมือ่ เราจะเขียนโปรแกรมเพือ ่ ควบคุมการทางานของอุปกรณ์ก็สามารถสงั่ ผ่าน
ระบบปฏิบต ั กิ ารเพือ่ เข ้าถึงอุปกรณ์ตา่ งๆ โดยใชค้ าสงั่ ทีเ่ ป็ นมาตรฐานของตัว
ระบบปฏิบต ั กิ ารทีไ่ ม่ขน ึ้ กับตัวอุปกรณ์
• Device Driver เป็ น software ทีท ่ าให ้ระบบปฏิบตั ก
ิ ารสามารถติดต่อกับอุปกรณ์
ต่างๆ ของเครือ ่ งได ้ โดยมี version ทีเ่ จาะจงกับแต่ละระบบปฏิบต ั ก
ิ าร

305171 – Computer Programming โดย อ.สริ ภพ คชร ัตน์ 44

You might also like