ระบบเลขฐาน
เลขฐาน
หมายถึง กลุ่มข้อมูลที่มีจำนวนหลัก (Digit) ตามชื่อของฐาน
นั้นๆเช่น เลขฐานสอง ฐานแปด และฐานสิบ
ประกอบด้วยข้อมูลตัวเลขจำนวนสองหลัก (0-1) แปดหลัก
(0-7) และสิบหลัก (0-9) ตามลำดับ ดังรูป
n ระบบคอมพิวเตอร์มีการใช้ระบบเลขฐาน4
แบบ ประกอบด้วย
1).เลขฐานสอง (Binary
Number)
2).เลขฐานแปด (Octal Number)
3).เลขฐานสิบ (Decimal
Number)
4).เลขฐานสิบหก (Hexadecimal
Number)
เลขฐานสอง
n คือตัวเลขที่มีค่าไม่ซ้ำกันสองหลัก
( 0 และ 1) เป็นเลขฐานเดียวที่เข้ากันได้กับ
Hardware ของเครื่องคอมพิวเตอร์ได้โดยตรง เพราะการใช้เลขฐานอื่น
จะสร้างความยุ่งยากให้กับเครื่องคอมพิวเตอร์อย่างมาก เช่น
เลขฐานสิบมีตัวเลขที่เป็นสถานะที่ต่างกันถึง 10 ตัว ในขณะที่ระบบไฟฟ้ามีเพียง2 สถานะ ซึ่งในช่วงเวลาหนึ่งๆมีเพียงสถานะเดียวเท่านั้น
แต่ละหลักของเลขฐานสอง เรียกว่า Binary Digit (BIT)
เลขฐานแปด
n
เลขฐานแปด มีความสัมพันธ์กับเลขฐานสอง คือ
เลขฐานสองจำนวน 3
หลัก แทนด้วยเลขฐานแปด 1 หลัก
ดังนั้นเราจึงสามารถเขียนเลขฐานสอง 6 บิท แทนด้วยเลขฐานแปด 2
บิท การใช้เลขฐานแปดแทนเลขฐานสองทำให้จำนวนบิทสั้นลง
เลขฐานสิบ
n
คือตัวเลขที่มีค่าไม่ซ้ำกันสิบหลัก (0,1,2,…,9) เป็นเลขฐานที่มนุษย์คุ้นเคยและใช้ในชีวิตประจำวันมากที่สุด
ตัวเลขที่มีจำนวนมากกว่า 9 ให้ใช้ 10 ซึ่งเป็นการกลับไปใช้เลข1 และ 0 อีก เพียงแต่ค่าของ 1 เปลี่ยนไปเป็น 10 เท่าของตัวมันเอง เช่น 333
(สามร้อยสามสิบสาม) แม้จะใช้ตัวเลข 3 ทั้งหมด
แต่ตำแหน่งของตัวเลขย่อมมีความหมายตามตำแหน่งของแต่ละหลักนั้น กล่าวคือ
หลักหน่วยน้อยกว่าหลักสิบ 10 เท่า หลักสิบน้อยกว่าหลักร้อย 10
เท่า ตามลำดับ
n
เลขฐานสิบหก
n
เลขฐานสิบหก มีความสัมพันธ์กับเลขฐานสอง คือ
เลขฐานสองจำนวน 4
หลัก แทนด้วยเลขฐานสิบหก 1 หลัก
ดังนั้นเราจึงสามารถเขียนเลขฐานสอง 8 บิทแทนด้วยเลขฐานสิบหก 2
บิท การใช้เลขฐานสิบหกแทนเลขฐานสองทำให้จำนวนบิทสั้นลง
n
ระบบเลขฐานสิบหก (Hexadecimal) ฐานของมันจะมีค่าเป็น 16 ซึ่งจะมีตัวเลขที่ไม่ซ้ำกันอยู่ทั้งหมด16 ตัว คือ 0 1
2 3 4 5 6 7
8 9 A B C
D E F (ตัวอักษร6 ตัว แทน ตัวเลข 10 –15 ตามลำดับ)
n
การแปลงเลข 10101011111101 เป็นเลขฐานสิบหกสามารถทำได้โดย
การแบ่งกลุ่ม ๆ ละ 4 บิตดังนี้
0010 1010 1111 1101
จะเห็นว่าถ้าแบ่งเป็นกลุ่ม ๆ ละ 4 บิต
จะมีสองบิตบนที่จัดกลุ่มไม่ได้
ให้เติม 0 ไปในกลุ่มนั้นให้ครบ4 บิต จากนั้นแทนค่าตัวเลขแต่ละกลุ่มด้วย
เลขฐานสิบหกดังนี้
2 A F D
ดังนั้นจะได้ 10101011111101 มีค่าเท่ากับ 2AFD
การแปลงเลขฐานสิบเป็นฐานสอง
n
คำศัพท์ที่จำเป็นต้องทำความรู้จักเพื่อให้เข้าใจตรงกันในการดำเนินการต่างๆ
ในระบบเลขฐานสองมีดังนี้
(1) บิต (bit)
คือหลักแต่ละหลักในระบบเลขฐานสอง เช่น ประกอบด้วย 3 บิต
(2) บิตที่มีนัยสำคัญสูงสุด (most
significant bit : MSB) คือบิตที่อยู่ซ้ายมือสุดเป็นบิตที่มีค่าประจำหลักมากที่สุด เช่น บิตที่มีนัยสำคัญสูงสุดคือ 1 มีค่าประจำหลักเป็น
(3)
บิตที่มีนัยสำคัญต่ำสุด (least significant bit : LSB) คือบิตที่อยู่ขวามือสุดซึ่งเป็นบิตที่มีค่าประจำหลักน้อยที่สุดเช่น บิตที่มีนัยสำคัญต่ำสุดคือ 0 มีค่าประจำหลักเป็น ให้สังเกตว่าค่าประจำหลักของบิตที่มีนัยสำคัญต่ำสุดจะมีค่าเป็น เสมอ
ที่มา std.kku.ac.th/4930503320/com
การแปลงเลขฐานสองเป็นฐานสิบ การแปลงเลขฐานสองกลับเป็นเลขฐานสิบต้องอาศัยค่าประจำหลักของแต่ละบิตในเลขฐานสองที่ต้องการแปลง
โดยเราจะแยกตัวเลขในแต่ละบิตมาคูณด้วยค่าประจำหลักแล้วนำผลลัพธ์จากการคูณดังกล่าวมารวมกัน
จะได้เลขฐานสิบที่มีค่าตรงกับเลขฐานสอง
ตัวอย่างที่ 1 แสดงการแปลงเลข ให้อยู่ในรูปเลขฐานสิบ
ตัวอย่างที่
2 แสดงการแปลงเลข ให้อยู่ในรูปเลขฐานสิบ
การบวกเลขฐานสอง
n
การบวกเลขฐานสองมีหลักการเหมือนกับการบวกเลขฐานสิบที่เราคุ้นเคย
เพียงแต่ตัวเลขในแต่ละหลักของเลขฐานสองจะมีค่ามากที่สุดคือ 1 นั่นหมายความว่าในหลักใดๆ
ที่มี 1 บวกกับ 1 จะได้ผลลัพธ์เป็น 0
และทดค่า 1 ไว้ในหลักถัดไปทางซ้ายดังตัวอย่างต่อไปนี้
ตัวอย่าง แสดงการหาค่า 1001 + 1111
ตัวอย่าง แสดงการหาค่า 1001 + 1111
การลบเลขฐานสอง
รหัสแอสกี
(American
Standard Code Information Interchange :ASCII)
n
เป็นมาตรฐานที่นิยมใช้กันมากในระบบคอมพิวเตอร์และระบบสื่อสารข้อมูล
รหัสแทนข้อมูลชนิดนี้ใช้เลขฐานสองจำนวน 8 บิตหรือเท่ากับ 1 ไบต์แทนอักขระหรือสัญลักษณ์แต่ละตัว ซึ่ง
หมายความว่าการแทนอักขระแต่ละตัวจะประกอบด้วยตัวเลขฐานสอง 8 บิตเรียงกัน
ซึ่งลำดับของแต่ละบิตเป็นดังนี้
ตัวอย่าง รหัสแทนข้อมูล
จากหลักการของระบบเลขฐานสอง
แต่ละบิตสามารถแทนค่าได้ 2
แบบ คือ เลข 0 หรือเลข 1 ถ้าเราเขียนเลขฐานสองเรียงกัน 2 บิตในการแทนอักขระ
เราจะมีรูปแบบในการแทนอักขระได้ หรือ 4 รูปแบบ คือ 00
, 01 , 10 และ11 ดังนั้นในการใช้รหัสแอสกีซึ่งมี8 บิตในการแทนอักขระแล้ว เราจะมีรูปแบบที่ใช้แทนได้ถึง หรือ256 รูปแบบ
ซึ่งเมื่อใช้แทนตัวอักษรภาษาอังกฤษแล้วยังมีเหลืออยู่
สำนักงานมาตรฐานผลิตภัณฑ์อุตสาหกรรม หรือ สมอ.
จึงได้กำหนดรหัสภาษาไทยเพิ่มลงไปเพื่อให้ใช้งานร่วมกัน ตามตารางแสดงรหัส ASCII
คอมพิวเตอร์ทำงานด้วยหลักการทางอิเล็กทรอนิกส์ที่แทนสัญญาณทางไฟฟ้าด้วย
ตัวเลขศูนย์และหนึ่งซึ่งเป็นตัวเลขในระบบเลขฐานสอง
แต่ละหลักเรียกว่าบิต (binary digit : bit)
และเมื่อนำตัวเลขหลาย ๆ บิตมาเรียงกัน จะใช้สร้างรหัสแทนความหมายจำนวน
หรือตัวอักษร หรือสัญลักษณ์ ทั้งภาษาอังกฤษและภาษาไทยได้
และเพื่อให้การแลกเปลี่ยนข้อความระหว่างมนุษย์กับคอมพิวเตอร์เป็นไปในแนวเดียวกัน
จึงมีการกำหนดมาตรฐานรหัสตัวเลขในระบบเลขฐานสอง
สำหรับแทนสัญลักษณ์เหล่านี้
รหัสมาตรฐานที่นิยมใช้กันมากมีสองกลุ่มคือ
เลข 0 และ 1ในระบบฐานสองแต่ละตัว
เรียกว่าบิต (bit) ย่อมาจากคำว่าBinary Digi บิตเป็นหน่วยเล็กที่สุดในการเก็บข้อมูลด้วยคอมพิวเตอร์
แต่เนื่องจากบิตเดียวไม่สามารถเก็บข้อมูลตัวเลขตัวอักษร และสัญลักษณ์พิเศษต่าง ๆ
ได้ครบ ดังนั้นจึงต้องรวมบิตหลายบิตเข้าเป็นกลุ่มเรียกว่าไบต์ (byte) แต่ละไบต์จะแทนอักษรหนึ่งตัว
ความจุของหน่วยความจำและความจุของที่เก็บข้อมูลสำรองในคอมพิวเตอร์
ซึ่งหน่วยของความจุที่เก็บข้อมูลจะมีหน่วยเป็นหน่วยของไบต์
และหากมีความจุสูงก็อาจใช้หน่วยความจุเป็นกิโลไบต์ (Kilobyte) โดยหนึ่งกิโลไบต์มีค่าเป็น 1,024 ไบต์ ใช้สัญลักษณ์ KB
หรือ K แทน (บางครั้งอาจใช้ค่าประมาณ1 กิโลไบต์(ประมาณ 1,000 ไบต์) ดังนั้นถ้าหน่วยความจำขนาด 640 กิโลไบต์
จะเก็บข้อมูลได้ 640 x 1,024 หรือ 655,360 ไบต์ นอกจากนี้ยังมีหน่วยความจุเป็นเมกะไบต์
ปัจจุบันนี้ หน่วยความจำมีความจุมากขึ้นจนอยู่ในหน่วยของจิกะไบต์ (Gigabyte) ซึ่งมีค่าเป็น 1,024
x1,024 x1,024 ไบต์ หรือ 1,073,741,824 ไบต์
ใช้สัญลักษณ์ GB หรือ G แทน
(บางครั้งอาจใช้ค่าประมาณ 1 จิกะไบต์ ประมาณ
1,000,000,000 ไบต์ หรือหนึ่งพันล้านไบต์)
ในเครื่องคอมพิวเตอร์รุ่นเก่าจะมีหน่วยความจำหลักเพียง 640 กิโลไบต์
แต่ในเครื่องคอมพิวเตอร์รุ่นใหม่ จะมีหน่วยความจำหลักที่มีความจุตั้งแต่ 8 เมกะไบต์ ถึง 32 เมกะไบต์ หรือมากกว่านี้ ส่วนในเครื่องเมนเฟรมจะมีหน่วยความจำที่มีความจุถึงหน่วยของจิกะไบต์
นอกจากนี้ ในการประมวลผลของคอมพิวเตอร์
ในทางทฤษฎีแล้วผู้ใช้สามารถกำหนดรหัสแทนอักขระใด ๆ
ได้เองจากกลุ่มของเลขฐานสอง 8 บิต
แต่ในความเป็นจริงนั้นทำไม่ได้
เพราะหากทำเช่นนั้นอาจเกิดปัญหาระหว่างเครื่องสองเครื่องที่ใช้รหัสต่างกัน
เปรียบเทียบได้กับคนสองคนคุยกันคนละภาษา
ดังนั้นจึงควรมีการกำหนดรหัสแทนข้อมูลที่เป็นสากล เพื่อให้เครื่องคอมพิวเตอร์ต่าง
ๆ สามารถสื่อสารกันได้ รหัสแทนข้อมูลที่นิยมใช้กันในปัจจุบัน
เป็นคำย่อมาจาก Extended Binary Coded Decimal Interchange Code พัฒนาและใช้งานโดยบริษัทไอบีเอ็ม
เครื่องคอมพิวเตอร์เมนเฟรมของไอบีเอ็มยังคงใช้รหัสนี้
รหัสแอสกี(ASCII)
เป็นมาตรฐานที่นิยมใช้กันมากในระบบคอมพิวเตอร์ส่วนใหญ่
เป็นคำย่อมาจาก American Standard Code Information Interchange เป็นรหัส 8 บิต แทนสัญลักษณ์ต่าง ๆ ได้ 256 ตัว เมื่อใช้แทนตัวอักษรภาษาอังกฤษแล้วยังมีเหลืออยู่
สำนักงานมาตรฐานผลิตภัณฑ์อุตสาหกรรม หรือ สมอ. ได้กำหนดรหัสภาษาไทยเพิ่มลงไปเพื่อให้ใช้งานร่วมกันได้
การแทนข้อมูลในหน่วยความจำ
หน่วยความจำหลักของคอมพิวเตอร์เป็นที่เก็บข้อมูลและคำสั่งในขณะประมวลผล
การเก็บข้อมูลในหน่วยความจำเป็นการเก็บรหัสตัวเลขฐานสอง
ข้อมูลที่ใช้ในการประมวลผลทั้งตัวเลขหรือตัวอักษรจะได้รับการแทนเป็นตัวเลขฐานสอง
แล้วเก็บไว้ในหน่วยความจำ เช่น ข้อความว่า
หน่วยความจำของไมโครคอมพิวเตอร์ที่ใช้กันอยู่ในขณะนี้ มีขนาดความกว้าง 8
บิต และเก็บข้อมูลเรียงกันไป โดยมีการกำหนดตำแหน่งซึ่งเรียกว่า
เลขที่อยู่ (address)
เพื่อให้ข้อมูลที่เก็บมีความถูกต้อง ข้อมูล
วิธีที่ง่ายและนิยมใช้กันคือการเพิ่มอีก 1 บิต เรียกว่า
บิตพาริตีที่เพิ่มเติมเข้าไปจะทำให้ข้อมูลทั้งหมดในส่วนนั้นมีเลข 1 เป็นจำนวนคู่ หรือจำนวนคี่ เช่น
ในไมโครคอมพิวเตอร์เพิ่มอีก1 บิต เพื่อทำให้เลขหนึ่งเป็นจำนวนคู่ เรียกว่าพาริตีคู่ (even
parity) บิตพาริตีที่เติมสำหรับข้อมูลตัวอักษร A และ E เป็นดังนี้
A 01000001 0 <-- บิตพาริตี
E 01000101 1 <-- บิตพาริตี
ข้อมูลA มีเลข1 สองตัว ซึ่งเป็นจำนวนคู่อยู่แล้ว ดังนั้นจึงใส่บิตพาริตีเป็นเลข
0
ข้อมูล E มีเลข 1 เป็นจำนวนคี่
จึงใส่บิตพาริตีเป็น 1 เพื่อให้มีเลข 1 เป็นจำนวนคู่
ข้อความ
หน่วยควบคุมของคอมพิวเตอร์ที่อยู่ในซีพียู ทำการอ่านคำสั่งจากหน่วยความจำมาแปลความหมายและกระทำตาม
คำสั่งคอมพิวเตอร์พื้นฐานที่สุดเรียกว่า ภาษาเครื่อง (machine langauge) ภาษาเครื่องมีลักษณะเป็นรหัสที่ใช้ตัวเลขฐานสอง
ตัวเลขฐานสองเหล่านี้แทนชุดรหัสคำสั่ง คอมพิวเตอร์เครื่องหนึ่งมีคำสั่งที่ใช้ได้หลายร้อยคำสั่ง
แต่ละคำสั่งจะมีความหมายเฉพาะ เช่น คำสั่งนำข้อมูลที่มีค่าเป็น 3 จากหน่วยความจำตำแหน่งที่ 8000 มาบวกกับข้อมูลที่มีค่าเป็น5 ในตำแหน่งที่ 8001 ผลลัพธ์ที่ได้ให้เก็บไว้ในหน่วยความจำตำแหน่งที่8002 เมื่อเขียนคำสั่งเป็นภาษาเครื่องจะมีลักษณะเป็นตัวเลขฐานสองเรียงต่อกันเป็นจำนวนมาก