เลขฐานที่ใช้ในคอมพิวเตอร์
ระบบเลขฐานที่ใช้กับคอมพิวเตอร์
คอมพิวเตอร์ เป็นอุปกรณ์อิเล็กทรอนิกส์ที่ต้องทำงานด้วยกระแสไฟฟ้า ดังนั้นจึงมีการแทนที่สภาวะของกระแสไฟฟ้าได้ 2 สภาวะ คือ สภาวะที่มีกระแสไฟฟ้า และสภาวะที่ไม่มีกระแสไฟฟ้า และเพื่อให้โปรแกรมเมอร์สามารถสั่งงานให้คอมพิวเตอร์ทำงานตามคำสั่งได้ จึงได้มีการสร้างระบบตัวเลขที่นำมาแทนสภาวะของกระแสไฟฟ้า
โดยตัวเลข 0 จะแทนสภาวะไม่มีกระแสไฟฟ้า หรือ ปิด (off)
และเลข 1 แทนสภาวะมีกระแสไฟฟ้า หรือเปิด (on)
จึงได้กำหนดตัวเลขที่มีจำนวน 2 จำนวน (2 ค่า) เรียกว่าระบบเลขฐานสอง (Binary Number System) หรือเรียกว่า ดิจิทัล( ( digital) เฉพาะชื่อเฉพาะอาจสะกดเป็น ดิจิทอล หรือ ดิจิตอล) ระบบดิจิตอล ซึ่งเป็นระบบตัวเลข 0 กับ 1 ที่สามารถนำมาใช้ในการสั่งงานคอมพิวเตอร์ให้ทำงานตามโปรแกรมที่เขียนสั่งงาน โดยการแทนที่สภาวะต่างๆ ของกระแสไฟฟ้า แต่ในชีวิตประจำวันของคนเราจะคุ้นเคยกับตัวเลขฐานสิบ(Decimal Number System) ที่มีจำนวน 10 จำนวน คือ เลข 0 - 9 ดังนั้นจึงมีความจำเป็นต้องศึกษาระบบเลขฐาน ประกอบการศึกษาวิชาด้านคอมพิวเตอร์ เพื่อความเข้าใจพื้นฐานการทำงานของเครื่องคอมพิวเตอร์
ระบบจำนวนที่ใช้ในทางคอมพิวเตอร์
ประกอบด้วย
ระบบเลขฐานสอง (Binary) ประกอบด้วยตัวเลข 0 และ 1
ระบบเลขฐานแปด (Octal) ประกอบด้วยตัวเลข 0 - 7
ระบบเลขฐานสิบ (Decimal) ประกอบด้วยตัวเลข 0 - 9
ระบบเลขฐานสิบหก (Hexadecimal) ประกอบด้วยตัว เลข 0 - 9 และ A - F
ระบบจำนวน |
จำนวนหลัก (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 |
การแปลงเลขฐานสองเป็นเลขฐานสิบ มีหลายวิธี แต่ที่จะแนะนำคือ การกระจายค่าประจำหลัก จากนั้นนำมาบวกรวมกันอีกครั้ง ผลลัพธ์ที่ได้จะเท่ากับค่าในเลขฐานสิบ
ตัวอย่างที่1 (110111)2 มีค่าเท่ากับเท่าไรในระบบเลขฐานสิบ
วิธีทำ
N = (1 x 25) + (1 x 24) + (0 x 23) + (1 x 22) + (1 x 21) + (1 x 20)
= 32 + 16 + 0 +4 + 2 + 1
1101112 = 5510
การแปลงเลขฐานสอง เป็นเลขฐานสิบ วิธีที่สอง คือ Dibble Dobble Method โดยการนำเอาเลขหลักซ้ายสุด มาวางไว้ แล้วคูณด้วย 2 จากนั้นบวกด้วยเลขบิทที่อยู่ ทางขวามือ จากนั้นนำผลลัพธ์ มาคูณด้วย 2 บอกด้วยเลขบิทต่อไป ดังนี้
เช่น ต้องการแปลง (110111)2 เป็นเลขฐานสิบ
บิทซ้ายสุด คือ 1
คูณด้วย 2 และบวกบิทถัดไป (2 x 1) + 1 = 3
คูณด้วย 2 และบวกบิทถัดไป (2 x 3) + 0 = 6
คูณด้วย 2 และบวกบิทถัดไป (2 x 6) + 1 = 13
คูณด้วย 2 และบวกบิทถัดไป (2 x 13) + 1 = 27
คูณด้วย 2 และบวกบิทถัดไป (2 x 27) + 1 = 55
ดังนั้น 1101112 = 5510
อีกวิธีที่น่าสนใจและใช้คำนวณง่ายมาก
ที่มาของค่าประจำหลัก
2 ยกกำลัง 0 = 1
2 ยกกำลัง 1 = 2
2 ยกกำลัง 2 = 4
2 ยกกำลัง 3 = 8
2 ยกกำลัง 4 = 16
2 ยกกำลัง 5 = 32
2 ยกกำลัง 6 = 64
2 ยกกำลัง 7 = 128
ค่าประจำหลัก | |||||||
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
เลขฐานสอง | |||||||
1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 |
วิธีคิดให้นำค่าประจำหลักที่เลขฐานสองมีค่าเป็น 1 เท่านั้นมาบวกกันและถ้าค่าประจำหลักที่มีเลขฐานสองเป็น 0 จะนำค่าคือ 0
จากตาราง 10101010 คือ 128+0+32+0+8+0+2+0 คำตอบเลขฐานสิบคือ 170
ค่าประจำหลัก | |||||||
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
เลขฐานสอง | |||||||
0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 |
ค่าประจำหลัก | |||||||
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
เลขฐานสอง | |||||||
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
จากตาราง 11111111 คือ นำค่าประจำหลักที่เลขฐานสองเป็น 1 มาบวกกัน = 128+64+32+16+8+4+2+1 คำตอบเลขฐานสิบคือ 255
การแปลงเลขฐานสิบเป็นฐานสอง
การแปลงเลขฐานสิบเป็นเลขฐานสองก็มีหลายวิธี แต่ที่จะแนะนำคือ การหารด้วย 2 แล้วจดค่าเศษจากการหารไว้ จนกระทั่งหารไม่ได้อีกแล้ว หรือการหารสั้น จากนั้นนำเศษจากการหารแต่ละครั้ง มาไล่ลำดับจากล่างขึ้นไปหาค่าบนสุด ผลลัพธ์ที่ได้จะเท่ากับค่าในเลขฐานสอง
ตัวอย่างที่ 2 (29)10 มีค่าเท่ากับเท่าไรในระบบเลขฐานสอง
อีกวิธีการแปลงเลขฐานสิบเป็นฐานสองที่ง่ายโดยการใช้ค่าประจำหลักเข้ามาใช้
เช่นค่าฐานสิบมีค่า 200
วิธีคิด นำค่าประจำหลักมาลบถ้าลบได้ให้ใส่ 1 ที่เลขฐานสองลบไม่ได้ใส่ 0
200 - 128 = 72
ค่าประจำหลัก | |||||||
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
เลขฐานสอง | |||||||
1 |
ต่อไป เหลือ 72- 64 = 8
ค่าประจำหลัก | |||||||
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
เลขฐานสอง | |||||||
1 | 1 |
ต่อไป เหลือ 8 - (32 และ 16 ) ลบกันไม่ได้ใส่ 0 ที่ เลขฐานสอง ทั้งสองช่อง
ค่าประจำหลัก | |||||||
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
เลขฐานสอง | |||||||
1 | 1 | 0 | 0 |
ต่อไป เหลือ 8 - 8 = 0 ใส่ 1 ในช่องเลขฐานสองตรงกับค่าประจำหลัก 8
และค่าที่เหลือคือ 0 ช่องในเลขฐานสองที่เหลือใส่ 0
ค่าประจำหลัก | |||||||
128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
เลขฐานสอง | |||||||
1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 |
ค่าฐานสิบคือ 200 จะได้เลขฐานสองดังตารางข้างบน 11001000