เลขฐานสอง

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

ส่วนการนับของมนุษย์โดยปกตินั้น เราจะมีตัวเลขโดดอยู่สิบตัวคือ 0, 1, 2, 3, 4, 5, 6, 7, 8, และ 9 ซึ่งจะประกอบรวมกันเป็นระบบเลขจำนวนที่เรียกกันว่า เลขฐาน 10  จะเห็นว่าระบบเลขจำนวนที่ใช้ในคอมพิวเตอร์มีความแตกต่างจากระบบเลขจำนวนที่มนุษย์ใช้กันโดยปกติ ดังนั้นเราจะต้องเรียนรู้ถึงทักษะในการคำนวณของระบบเลขจำนวนทั้งสองแบบรวมถึงวิธีการเปลี่ยนระบบเลขจำนวนไปมา

2.1         ความหมายของตัวเลขในหลักต่าง ๆ
ในระบบเลขฐานสิบนั้น ค่าของเลขโดด ณ ตำแหน่งใด ก็คือค่าของเลขโดดนั้นคูณด้วยสิบยกกำลังของตำแหน่งนั้น เช่น 12345 หมายความว่า ค่า 5  อยู่ในตำแหน่งหลักหน่วยซึ่งค่าของสิบยกกำลังของหลักหน่วยคือ 100 ค่า 4 อยู่ในตำแหน่งของหลักสิบ (101) ค่า 3 อยู่ในตำแหน่งของหลักร้อย (102) ค่า 2 อยู่ในตำแหน่งของหลักพัน (103) และค่า 1 อยู่ในตำแหน่งของหลักหมื่น (104) ซึ่ง 12345 สามารถเขียนอยู่ในรูปผลบวกทางคณิตศาสตร์ได้ดังนี้

12345         =              (1 x 104) + (2 x 103) + (3 x 102) + (4 x 101) + (5 x 100)
                   =              10000 + 2000 + 300 + 40 + 5

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

12.34          =              (1 x 101) + (2 x 100) + (3 x 10-1) + (4 x 10-2)
                   =              10 + 2 + 0.3 + 0.04

เราสามารถใช้หลักการเดียวกันนี้กับเลขฐานสองเพื่อหาค่าของจำนวนดังกล่าวในรูปของเลขฐานสิบ (ในความเป็นจริงแล้วสามารถที่จะนำไปใช้ได้กับเลขทุกฐาน) เช่น 1011.012 จะเขียนได้เป็น

1011.012     =              (1 x 23) + (0 x 22) + (1 x 21) + (1 x 20) + (0 x 2-1) + (1 x 2-2)
                   =              8 + 0 + 2 + 1 + 0 + 0.25
                   =              11.25


2.1         การแปลงค่าจากเลขฐานสิบเป็นเลขฐานสอง
การแปลงเลขฐานสิบเป็นฐานสองจะมีขั้นตอนอยู่สองขั้นตอนคือ การแปลงเลขส่วนที่อยู่หน้าทศนิยมและการแปลงเลขส่วนที่อยู่หลังทศนิยม

การแปลงเลขในส่วนที่อยู่หน้าทศนิยม ให้นำเลขดังกล่าวมาหารด้วยสองไปเรื่อย ๆ จนกว่าจะได้ผลลัพธ์เป็นศูนย์ โดยการหารแต่ละครั้งจะได้เศษเป็น 0 หรือ 1 ลำดับของเศษที่เกิดขึ้นก็คือกำลังของเลขสอง กล่าวคือ เศษที่ได้จากการหารครั้งแรกจะเป็นเลขในหลัก 20, เศษที่เกิดจากการหารครั้งที่สองจะเป็นเลขในหลัก 21 เรื่อยไป

ตัวอย่าง จงเปลี่ยนค่า 1310 ให้เป็นเลขฐานสอง

                                   2 ø 13
                                           6                      เศษ  1
                                           3                      เศษ  0
                                           1                      เศษ  1
                                           0                      เศษ  1

                   \ 1310   =  11012

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

ตัวอย่าง จงเปลี่ยนค่า 0.2510 ให้เป็นเลขฐานสอง

                                                   0.25
                                      x                2
                                                   0.50
                                      x                2
                                                   1.00

                   .01

                   \ 0.2510  =  0.012


ดังนั้นจากตัวอย่างข้างต้นสามารถสรุปได้ว่า 13.2510             =              1101.012
2.2         การบวกและการลบเลขฐานสอง
การบวกเลขฐานสองมีหลักการเหมือนกับการบวกเลขฐานสิบ การบวกเลขในฐานสิบนั้นเมื่อผลบวกในหลักใดมีค่ามากกว่า 9 ก็จะต้องมีการทดเลข 1 ไปยังหลักถัดไป ซึ่งหลักเกณฑ์การทดเลขนี้ยังสามารถใช้ได้กับเลขฐานสอง เพียงแต่ว่าเลขโดดที่สูงที่สุดของเลขฐานสองคือ 1 ดังนั้นถ้าผลบวกมีค่าเกิน 1 ก็จะมีการทดไปยังหลักถัดไปทางซ้าย รูปแบบการบวกเป็นดังนี้

0  +  0  =  0
0  +  1  =  1
1  +  0  =  1
1  +  1  =  0    ทด 1

ตัวอย่าง จงบวกเลข 1011.1012 กับ 110.0112

                   1 0 1 1 . 1 0 1
   +                 1 1 0 . 0 1 1
               1  0 0 1 0 . 0 0 0

การลบเลขเป็นการดำเนินการที่ผกผันกับการบวก ในการลบ ถ้ามีการลบเลขที่มากกว่าจากเลขที่น้อยกว่า ต้องมีการขอยืมจากเลขในหลักถัดไปทางซ้ายมา 1 รูปแบบการลบเป็นดังนี้

0  -  0  =  0
0  -  1  =  1    ขอยืม  1
1  -  0  =  1
1  -  1  =  0

ตัวอย่าง จงลบเลข 1001.11 กับ 101.1

                   1 0 0 1 . 1 1
   -                  1 0 1 . 1 0
                      1 0 0 . 0 1            
2.1         การคูณและการหารเลขฐานสอง
การคูณและการหารของเลขฐานสอง ก็มีหลักการเช่นเดียวกับเลขฐานสิบ เพียงแต่มีสูตรคูณแค่แม่ 0 กับ 1 เท่านั้น อีกทั้งการหารด้วยศูนย์ก็ไม่มีความหมายเช่นเดียวกับการหารในระบบเลขฐานสิบ ตารางการคูณและการหารของระบบเลขฐานสองคือ

0  x  0  =  0
0  x  1  =  0
1  x  0  =  0
1  x  1  =  1
0  ¸  1  =  0
1  ¸  1  =  1

ตัวอย่าง      จงคูณเลขฐานสอง 1.01 x 10.1
  
                      1 . 0 1
   x              1 0 . 1 0
                      1   0  1
                   0 0   0
                1 0 1
                1 1 . 0  0 1

                   จงหารเลขฐานสอง 11001 ¸ 101

                                   101
                   101  ø  11001
                               101
                                   101
                                   101
เรามีเลขฐานสองจำนวนสี่หลัก ก็จะได้เลขฐานสองที่มี 16 รูปแบบแตกต่างกัน ซึ่งสามารถใช้เลขฐานสิบหกแทนแต่ละรูปแบบของเลขฐานสองได้ แต่เนื่องจากเรามีเลขโดดใช้งานกันแค่สิบตัว    ดังนั้นจึงมีการนำตัว A F มาแทนค่าเลขโดดที่มีค่า 10 15 แทน ทำให้เลขฐานสิบหกมีเลขโดดคือ 0 9 และ    A F

เลขฐานสิบ

เลขฐานสอง

เลขฐานแปด

เลขฐานสิบหกๆ

0
0000
0
0
1
0001
1
1
2
0010
2
2
3
0011
3
3
4
0100
4
4
5
0101
5
5
6
0110
6
6
7
0111
7
7
8
1000
10
8
9
1001
11
9
10
1010
12
A
11
1011
13
B
12
1100
14
C
13
1101
15
D
14
1110
16
E
15
1111
17
F

2.1         ระบบเลข BCD (Binary Code Decimal)
ระบบเลข BCD มีชื่อเรียกอีกชื่อหนึ่งว่า Packed Decimal เป็นวิธีการหนึ่งที่จะทำให้การแปลงเลขระหว่างฐานสองกับฐานสิบง่ายขึ้นโดยใช้วิธีเดียวกับการสร้างเลขฐานสิบหก โดยจัดกลุ่มให้เลขฐานสอง 4 บิต เป็นเลขฐานสิบ 1 หลัก แต่จำนวนเลขโดดของเลขฐานสิบมีค่าน้อยกว่ารูปแบบของเลขฐานสองที่เป็นไปได้ใน 4 บิต      ดังนั้นจึงมีเลขฐานสองบางรูปแบบที่ไม่ได้ถูกใช้งาน สาเหตุที่ต้องจัดกลุ่มเลขฐานสองให้เป็น 4 บิตแทนที่จะเป็นค่าอื่น ๆ เพราะจำนวนเลขโดดของเลขฐานสองมีค่าเท่ากับ 10 ซึ่งอยู่ระหว่าเลขฐานสอง 3 บิตกับ 4 บิต นั่นเอง

ปกติแล้วเรามักจะไม่นำเลข BCD ไปคำนวณแบบซับซ้อน มักจะนำไปบวกลบกันเท่านั้นซึ่งการบวกลบกันของเลข BCD จะต้องทำทีละ 1 นิบเบิล และต้องปรับค่าผลลัพธ์เพื่อเลี่ยงเลขฐานสองที่ไม่ได้ใช้งานด้วย