วันพฤหัสบดีที่ 14 ธันวาคม พ.ศ. 2560

2.1 ระบบเลขฐานที่ใช้ในคอมพิวเตอร์

        มนุษย์ติดต่อสื่อสารทางคณิตศาสตร์ด้วยระบบเลขฐานสิบ ซึ่งเป็นที่รู้จักกันและใช้กันอย่างแพร่หลายทั่วโลก แต่ระบบคอมพิวเตอร์การทำงานภายในเครื่องคอมพิวเตอร์จะใช้ระบบเลขฐานสอง เพราะอุปกรณ์ภายในเครื่องคอมพิวเตอร์เป็นวงจรอิเล็กทรอนิกส์ใช้สัญญาณไฟฟ้าในการทำงาน และมีการทำงาน 2 สภาวะ คือ กระแสไฟเปิด (ON) และกระแสไฟปิด(OFF) มีการเชื่อมโยงเลขฐานสองซึ่งมีตัวเลขสองตัว คือ 1 และ0 เข้ากับสภาวะดังกล่าวโดยการกำหนดให้กระแสไฟฟ้าเปิด แทนด้วย 1 และกระแสไฟฟ้าปิด แทนด้วย 0 เพื่อให้เข้าใจการทำงานพื้นฐานของคอมพิวเตอร์ สำหรับการทำงานคำสั่งหรือโปรแกรมต่างๆ ซึ่งจะใช้เลขฐานสองทำงานจึงไม่สะดวก จึงนำเลขฐานอื่นมาใช้ร่วมด้วย เช่น เลขฐานแปด เลขฐานหก  เป็นต้นเพื่อให้คอมพิวเตอร์ทำงานได้อย่างรวดเร็วและมีประสิทธิภาพมากที่สุด

ในระบบคอมพิวเตอร์มีการใช้เลขฐานอยู่ 4 ระบบคือ
 1. ระบบเลขฐานสอง (Binary Number System) 
 2. ระบบเลขฐานแปด (Octal Number System) 
 3. ระบบเลขฐานสิบ (Decimal Number System) 
 4. ระบบเลขฐานสิบหก (Hexadecimal Number System)

ตารางที่ 2.1 จำนวนหลักของระบบเลขฐานต่างๆ

ระบบจำนวน
จำนวนหลัก (Digit)
เลขฐานสอง
0
1
เลขฐานแปด
0
1
2
3
4
5
6
7
เลขฐานสิบ
0
1
2
3
4
5
6
7
8
9
เลขฐานสิบหก
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F





2.2 ระบบเลขฐานสิบ

ระบบเลขฐานสิบ เป็นระบบเลขที่ใช้กันในชีวิตประจำวัน ไม่ว่าจะนำไปใช้คำนวณประเภทใด โดยจะมีสัญลักษณ์ที่ใช้แทนตัวเลขต่างๆ ของเลขฐานสิบ (Symbol) จำนวน 10 ตัว ตัวเลขหรือที่เรียกว่า Digit ที่ใช้แทนระบบเลขฐานสิบ ได้แก่ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
    ตัวเลขแต่ละตัวจะมีค่าประจำตัว โดยกำหนดให้ค่าที่น้อยที่สุด คือ 0 (ศูนย์) และเพิ่มค่าทีละหนึ่ง จนครบจำนวน 10 ตัว ดังนั้นค่ามากที่สุด คือ 9 การนำตัวเลขเหล่านี้ มารวมกลุ่มกัน ทำให้เกิดความหมายเป็น "ค่า" นั้น อาศัยวิธีการกำหนด "หลัก" ของตัวเลข (Position Notation) กล่าวคือ ค่าของตัวเลขจำนวนหนึ่ง พิจารณาได้จากสองสิ่งคือ
- ค่าประจำตัวของตัวเลขแต่ละตัว
- ค่าหลักในตำแหน่งที่ตัวเลขนั้นปรากฎอยู่
ในระบบที่ว่าด้วยตำแหน่งของตัวเลข ตำแหน่งที่อยู่ทางขวาสุด จะเป็นหลักที่มีค่าน้อยที่สุด เรียกว่า Least Sinificant Digit (LSD) และตัวเลขที่อยู่ในหลักซ้ายสุดจะมีค่ามากที่สุด เรียกว่า Most Sinificant Digit (MSD)
ตัวอย่าง
จำนวน 1,897
Most Sinificant Digit (MSD)
Least Sinificant Digit (LSD)
1
8
9
7

    นิยาม ค่าหลักของตัวเลขใดๆ คือ ค่าของฐานยกกำลังด้วยค่าประจำตำแหน่งของแต่ละหลัก โดยกำหนดให้ค่าประจำตำแหน่งของหลักของ LSD มีค่าเป็น 0 ในระบบเลขฐานสิบ จะมีสัญลักษณ์อยู่ 10 อย่าง คือ 0 - 9 จำนวนขนาดของเลขฐานสิบ สามารถอธิบายได้ โดยใช้ตำแหน่งน้ำหนักของแต่ละหลัก (Postional Weight) โดยพิจารณาจากเลข ดังต่อไปนี้
ค่าตัวเลข 4,897 สามารถขยายได้ดังนี้
4,897
= 4000 + 800 + 90 + 7
= (4 x 103) + (8 x 102) + (9 x 101) + (7 x 100)
จะเห็นว่าน้ำหนักตามตำแหน่ง ของตัวเลขต่างๆ สามารถขยายตามระบบจำนวนได้ และถูกแทนที่ด้วยสมการ ดังต่อไปนี้
N = dnRn + ... + d3R3 + d2R2 + D1R1 + D0R0
เมื่อ
N    คือ ค่าของจำนวนฐานสิบที่ต้องการ
dn   คือ ตัวเลขที่อยู่ในตำแหน่งต่างๆ
R    คือ ฐานของจำนวนตัวเลขนั้นๆ
n    คือ ค่ายกกำลังของฐานตามตำแหน่งต่างๆ




2.3 ระบบเลขฐานสอง

ระบบเลขฐานสอง มีสัญลักษณ์ที่ใช้เพียงสองตัว คือ 0 และ 1 ถ้าเปรียบเทียบเลขฐานสอง กับเลขฐานสิบแล้ว ค่าของหลักที่ถัดจากหลักที่น้อยที่สุด (LSD) ขึ้นไป จะมีค่าเท่ากับ ฐานสองยกกำลังหมายเลขหลัก แทนที่จะเป็น 10 ยกกำลัง ดังนี้
เลขฐานสิบ
เลขฐานสอง
100
1
หน่วย
20
1
หนึ่ง
101
10
สิบ
21
2
สอง
102
100
ร้อย
22
4
สี่
103
1000
พัน
23
8
แปด
104
10000
หมื่น
24
16
สิบหก
105
100000
แสน
25
32
สามสิยสอง
ระบบเลขฐานสองเกิดจากการใช้ตัวเลขเพียง 2 ตัว คือ 0 และ 1 ดังนั้น สมการคือ
N = dnRn + ... + d3R3 + d2R2 + D1R1 + D0R0
เมื่อ d คือค่า 0 หรือ 1
เช่น 1101 = (1 x 23) + (1 x 22) + (0 x 21) + (1 x 20)
เพื่อตัดปัญหายุ่งยาก ในการแทนค่าของเลขระบบต่างๆ เรานิยมเขียน ตัวเลขอยู่ในวงเล็บ และเขียนค่าของฐานนั้น อยู่นอกวงเล็บ
เช่น (101101)2 = (45)10
สำหรับเศษส่วน จะเขียนค่าของเศษส่วนอยู่หลังจุด (Binary Point) ยกกำลังเป็นลบ เพิ่มขึ้นตามลำดับ ดังตัวอย่าง
(0.1011)2 = (1 x 2-1) + (0 x 2-2) + (1 x 2-3) + (1 x 2-4)





2.4 ระบบเลขฐานแปด

เป็นเลขฐานที่ประกอบด้วยเลข 8 ตัว ซึ่งประกอบด้วยเลข 0, 1, 2, 3, 4, 5, 6, 7 ซึ่งเป็นเลขฐานที่เพิ่มเนื้อที่หน่วยความจำในการเก็บให้มากขึ้น การเก็บข้อมูลเป็นเลขฐาน 8 จะทำให้เก็บข้อมูลได้มากขึ้น








2.5 ระบบเลขฐานสิบหก

เป็นเลขฐานที่ประกอบด้วยตัวเลข 10 ตัวและตัวอักษรแทนตัวเลขอีก 6 ตัว ซึ่งประกอบด้วยเลข 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 และตัวอักษรภาษาอังกฤษแทน 10 ถึง 15 ได้แก่ A, B, C, D, E, F ซึ่งก็จะเก็บข้อมูลได้มากกว่าระบบเลขฐาน 2 ฐาน 8
    ระบบเลขฐานสิบหก (hexadecimal)นี้จะเป็นที่นิยมใช้ในการเข้ารหัส (encode)คำสั่งควบคุมเครื่อง (control code ) ที่อยู่ในระบบเลขฐานสอง ( binary ) ที่มีจำนวนคำสั่งยาวมากๆ ยกตัวอย่างได้เช่นตามคำอธิบายข้างต้น ถ้า 11111 เป็นคำสั่งควบคุมเครื่องในรูปเลขฐานสอง(binary)คือ 11111 ผู้ควบคุมเครื่องอาจจะเข้ารหัส ( encode)คำสั่งควบคุมเครื่องไว้ในรหัสบาร์โค้ด(barcode)ในรูป 1F ถ้าใช้รหัสเลขฐานสิบหก (hexadecimal)ซึ่งบาร์โค้ด(barcode)นั้นเวลาพิมพ์ที่จะใช้ให้เครื่องอ่านคำสั่งควบคุมเครื่อง จะใช้ความยาวของบาร์โค้ด(barcode) 2 ตัว เช่นการใช้ระบบเลขฐานสิบหก (hexadecimal)นี้ในการเข้ารหัส (encode)คำสั่งควบคุมเครื่อง (control code )สำหรับเครื่องจักรอัตโนมัติความเร็วสูง ( high speed Finishing system) เป็นต้น