ระบบตัวเลข (Number System)
1.1 กล่าวนำ
ระบบตัวเลขที่เราได้ใช้กันมาตลอดตั้งแต่ที่เราจำความกันได้นั้น
จะประกอบไปด้วยเลข 10ตัว คือ เลข 0,1,2,3,4,5,6,7,8,9
ซึ่งมนุษย์เราได้ใช้ระบบการนับเหล่านี้มาใช้ในการสื่อสาร บอกปริมาณ
ขนาด ทำให้ทุกคนสามารถมีความเข้าใจตรงกันในการสื่อความหมาย
ซึ่งระบบเลขนี้คือระบบเลขฐานสิบนั่นเอง
แต่ในปัจจุบัน
ความก้าวหน้าทางเทคโนโลยี โดยเฉพาะทางคอมพิวเตอร์ได้ถูกพัฒนามาเป็นอย่างมาก
ซึ่งหลักการทำงานของคอมพิวเตอร์นั้น จะมีลักษณะการทำงานภายในเพียง 2 จังหวะเท่านั้น
คือ ON และ OFF ในลักษณะของวงจรสวิทชิ่งนั้นเอง
จากลักษณะการทำงานของสวิทชิ่งนั้น
เราสามารถนำระบบเลขฐานสองมาประยุกต์ใช้ในการสื่อความหมายแทนคำว่า ON และ OFF ของวงจรสวิทชิ่ง
เนื่องจากเลขฐานสองจำนวนหลาย ๆ หลัก
เมื่อนำมาสื่อความหมายแล้วจะทำให้เกิดความสับสนในการสื่อความซึ่งกันและกัน จึงเป็นการไม่สะดวกนักในการใช้เลขฐานสองเพียงอย่างเดียว
เราจึงจำเป็นที่จะต้องศึกษาระบบเลขฐานอื่น ๆ
ซึ่งมีความสะดวกในการสื่อความหมายและจะต้องมีความสะดวกในการแปลงค่ากับเลขฐานสอง
ระบบเลขที่เรานิยมนำมาใช้คือระบบเลขฐานแปดและฐานสิบหกนั่นเอง
1.2 ระบบตัวเลข (Number System)
ระบบตัวเลขในแต่ละระบบจะมีจำนวนตัวเลขโดด
(Digit) เท่ากับชื่อของระบบตัวเลขฐานนั้น ๆ ได้แก่
ระบบเลขฐานสอง (Binary number system) จะประกอบด้วยเลขโดดพื้นฐานจำนวน 2 ตัว คือ 0 และ 1
ระบบเลขฐานห้า (Quinary number system) จะประกอบด้วยเลขโดดพื้นฐานจำนวน 5 ตัว คือ 0,
1, 2, 3 และ 4 ระบบเลขนี้นิยมแพร่หลายในพวกเอสกิโม
(Eskimos) และอินเดียนในอเมริกาเหนือ
ระบบเลขฐานแปด (Octal number system) จะประกอบด้วยเลขโดดพื้นฐานจำนวน 8 ตัว คือ 0,
1, 2, 3, 4, 5, 6 และ 7
ระบบเลขฐานสิบ (Decimal number system) จะประกอบด้วยเลขโดดพื้นฐานจำนวน 10 ตัว คือ 0,
1, 2, 3, 4, 5, 6, 7, 8 และ 9
ระบบเลขฐานสิบสอง (Duodecimal number system) จะประกอบด้วยเลขโดดพื้นฐานจำนวน 12 ตัว คือ 0,
1, 2, 3, 4, 5, 6, 7, 8, 9, a และ b ซึ่งระบบเลขฐานสิบสองนี้จะเห็นได้จากนาฬิกา
นิ้วและฟุต โหลและกุรุส
ระบบเลขฐานสิบหก (Hexadecimal number system) จะประกอบด้วยเลขโดดพื้นฐานจำนวน 16 ตัว คือ 0,
1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E และ F
1.3 ระบบเลขฐานสิบ
ระบบเลขฐานสิบเป็นระบบเลขพื้นฐานที่เราใช้สื่อความหมายมาโดยตลอด
ซึ่งจะประกอบด้วยสัญลักษณ์ที่เป็นเลขโดด (Digit) จำนวน 10 ตัว
คือ 0 ถึง 9 ในการเขียนเลขฐานสิบจะกระทำได้โดยการนำเลขโดด
1 ตัวมาเขียน ซึ่งสามารถเขียนค่าต่าง ๆ เรียงตามลำดับของมัน
เช่น 0, 1, 2,…, 9 ซึ่งจะเห็นว่าถ้านำเลขโดดเพียง 1 ตัวมาใช้ในการเขียนเพื่อสื่อความหมายนั้น เลข 9 จะเป็นค่าสูงสุดแล้ว
ในความเป็นจริงเราจำเป็นต้องใช้มากกว่านั้น
นั่นหมายความว่าในการเขียนเลขโดยใช้เลขโดดเพียงตัวเดียวคงไม่เพียงพอ
เราจำเป็นต้องนำเลขโดดหลาย ๆ ตัวมาเขียนประกอบกันเป็นค่าตัวเลขที่เราต้องการ เลข 9
ซึ่งเป็นค่าสูงสุด ถ้าเราสังเกตจะเห็นค่าตัวเลขที่เป็นตัวนำอยู่ คือ
0 นั่นเอง เราก็จะเห็นเป็น 09 หมายความว่าถ้าต้องการเพิ่มค่าให้มากกว่านี้อีก
1 ค่า เราจะต้องเปลี่ยนเลขในหลักต่ำสุดคือ เลข 9 ให้เป็นเลข 0 และเปลี่ยนค่าตัวนำให้เพิ่มขึ้นอีก 1
ค่า ซึ่งจะได้เป็น 10, 11, 12, …, 19, 20, 21, 22, …, 29,
30, 31, …, 99, 100, 101, …, 199, 200, 201, 202, …, 999, 1000, 1001, 1002, … (ลองสังเกตการเพิ่มค่าตัวเลขจากหน้าปัทม์บอกจำนวนระยะทางของรถยนต์ )
ตัวเลขโดดในการเขียนตัวเลขใด
ๆ อาจจะมีค่าที่แตกต่างกัน เช่น 2000 และ 20 ตัวเลข 2 ของเลข 2 จำนวน จะมีความหมายซึ่งไม่เหมือนกัน
หมายความว่าตัวเลขที่ปรากฏ ณ.ตำแหน่งต่าง ๆ
จะมีน้ำหนักที่ไม่เหมือนกัน นั่นคือจำนวนเต็มในเลขฐานสิบ N ซึ่งมีตัวเลข
n ตัว จะมีค่าเท่ากับผลบวกของสัมประสิทธิ์ตามน้ำหนัก
หาได้ดังนี้
N10 = an-1 (10)n-1
+ an-2 (10)n-2 + … + a1 (10)1 + a0
(10)0
ตัวอย่างเช่น 50891 เราสามารถเขียนในลักษณะของน้ำหนักประจำตำแหน่งได้ดังนี้
50891 = 5 x 104 + 0 x 103 + 8 x 102 + 9 x 101 + 1 x 100
ถ้าเป็นจำนวนทศนิยม เลขยกกำลังของฐานจะเริ่มตั้งแต่ –1 เป็นต้นไป
n10 = a-1 (10)-1 +
a-2 (10)-2 + … + a-(m-1) (10)-m+1 +
a-m (10)-m
ฉะนั้นถ้าเลขนั้น ๆ ประกอบไปด้วยจำนวนเต็มและทศนิยมก็จะได้
N10=an-1(10)n-1+an-2(10)n-2+…+a1(10)1+a0(10)0+a-1(10)-1+a-2(10)-2+…+a-(m-1)(10)-m+1+a-m(10)-m
1.4 ระบบเลขฐานสอง
ระบบเลขฐานสองได้ถูกคิดค้นขึ้นโดยนักคณิตศาสตร์ชาวเยอรมัน
ชื่อ “GOTTFRIED
WILHELM” ซึ่งใช้สัญลักษณ์เป็น
0 และ 1 เท่านั้น ทำให้ระบบเลขฐานสองนี้เหมาะสมในการนำมาประยุกต์แทนการอธิบายการทำงานของวงจรอิเล็กทรอนิกส์สวิทชิ่ง
โดย ON จะแทน 1 และ OFF จะแทน 0
การนับเลขฐานสอง (Counting in Binary)
การนับเลขฐานสองจะมีหลักการเช่นเดียวกับการนับเลขฐานสิบ
คือจะมีตัวนำและตามด้วยเลขพื้นฐาน เช่น
เลขฐานสิบ
|
เลขฐานสอง
|
เลขฐานสิบ
|
เลขฐานสอง
|
0
|
0
|
8
|
1000
|
1
|
1
|
9
|
1001
|
2
|
10
|
10
|
1010
|
3
|
11
|
11
|
1011
|
4
|
100
|
12
|
1100
|
5
|
101
|
13
|
1101
|
6
|
110
|
14
|
1110
|
7
|
111
|
15
|
1111
|
มีข้อสังเกตคือ เลขฐานสอง 16 ตัวแรก จะเขียนด้วยตัวเลขขนาด
4 หลัก หรือ 4 บิทพอดี (bit ย่อมาจาก binary digit) และความสำคัญของตัวเลข
ณ.ตำแหน่งต่าง ๆ
ก็จะมีระดับความสำคัญที่แตกต่างกันเช่นเดียวกับเลขฐานสิบ นั่นคือ
ตัวเลขที่อยู่ตำแหน่งซ้ายสุดของจำนวนเลขใด ๆ จะเป็นเลขที่มีนัยสำคัญสูงที่สุด (most
significant digit (bit) ใช้ตัวย่อว่า msd หรือ
msb) ส่วนตัวเลขที่อยู่ตำแหน่งขวาสุดของจำนวนเลขใด ๆ
จะเป็นเลขที่มีนัยสำคัญต่ำที่สุด (least significant digit (bit) ใช้ตัวย่อว่า lsd หรือ lsb) และเช่นเดียวกับเลขฐานสิบเราสามาถเขียนเลขฐานสองในลักษณะเทียบค่าน้ำหนักประจำหลักได้เช่นกัน
N2 = an-1 (2)n-1
+ an-2 (2)n-2 + … + a1 (2)1 + a0
(2)0
และในกรณีเป็นทศนิยมจะได้
n2 = a-1 (2)-1 +
a-2 (2)-2 + … + a-(m-1) (2)-m+1 + a-m
(2)-m
ฉะนั้นถ้าเลขนั้น ๆ ประกอบไปด้วยจำนวนเต็มและทศนิยมก็จะได้
N2 =
an-1 (2)n-1+ an-2 (2)n-2+…+
a1 (2)1+ a0 (2)0+ a-1 (2)-1+
a-2 (2)-2+…+ a-(m-1) (2)-m+1+ a-m
(2)-m
1.5 ระบบเลขฐานแปด
ในการทำงานจริงของอิเล็กทรอนิกส์สวิทชิ่งนั้น
เราสามารถแทนได้ด้วยเลขฐานสองก็จริง
แต่ถ้าหากมีการบอกรายละเอียดเป็นขนาดจำนวนบิตต่าง ๆ ค่อนข้างมาก
จะทำให้ไม่สะดวกนั้นในการที่จะใช้เลขฐานสองในการสื่อความหมาย
ข้อเสียนี้ของเลขฐานสองทำให้เราจำเป็นต้องหาระบบเลขอื่น ๆ มาใช้แทน
ซึ่งเลขฐานแปดเป็นระบบเลขระบบหนึ่งที่สามารถนำมาใช้แทนได้เป็นอย่างดี
เนื่องจากสัญลักษณ์พื้นฐานของเลขฐานแปดประกอบไปด้วยค่าต่ำสุดคือ 0 และค่าสูงสุด คือ 7 ซึ่งสอดคล้องกับ
ค่าต่ำสุดของเลขฐานสองจำนวน 3 บิต คือ 000 และค่าสูงสุดคือ 111 พอดี
ทำให้เราสามารถเปลี่ยนระหว่างเลขฐานสองและเลขฐานแปดได้สะดวก
การนับจะนวนของระบบเลขฐานแปดก็จะมีลักษณะเดียวกับเลขฐานสองและฐานสิบคือจะต้องประกอบด้วยตัวนำ
และตามด้วยตัวเลขพื้นฐาน
เลขฐานสิบ
|
เลขฐานแปด
|
เลขฐานสิบ
|
เลขฐานแปด
|
0
|
0
|
8
|
10
|
1
|
1
|
9
|
11
|
2
|
2
|
10
|
12
|
3
|
3
|
11
|
13
|
4
|
4
|
12
|
14
|
5
|
5
|
13
|
15
|
6
|
6
|
14
|
16
|
7
|
7
|
15
|
17
|
ซึ่งเขียนตามน้ำหนักประจำหลักจะได้
N8 = an-1 (8)n-1
+ an-2 (8)n-2 + … + a1 (8)1 + a0
(8)0
และในกรณีเป็นทศนิยมจะได้
n8 = a-1 (8)-1 +
a-2 (8)-2 + … + a-(m-1) (8)-m+1 + a-m
(8)-m
ฉะนั้นถ้าเลขนั้น ๆ ประกอบไปด้วยจำนวนเต็มและทศนิยมก็จะได้
N8 =
an-1 (8)n-1+ an-2 (8)n-2+…+
a1 (8)1+ a0 (8)0+ a-1 (8)-1+
a-2 (8)-2+…+ a-(m-1) (8)-m+1+ a-m
(8)-m
1.6 ระบบเลขฐานสิบหก
ระบบเลขฐานสิบหกมีลักษณะคล้ายเลขฐานแปด
โดยค่าต่ำสุดของเลขฐานสิบหก คือ 0 จะมีค่าเท่ากับค่าต่ำสุดของเลขฐานสอง
4 บิต คือ 0000 และโดยค่าสูงสุดของเลขฐานสิบหก
คือ F จะมีค่าเท่ากับค่าสูงสุดของเลขฐานสอง 4 บิต คือ 1111 ทำให้ระบบเลขฐานสิบหกจึงเป็นอีกระบบหนึ่งที่นิยมใช้แทนการกล่าวถึงเลขฐานสอง
และปัจจุบันจะเป็นที่นิยมใช้เลขฐานสิบหกมากกว่าเลขฐานแปด
เลขฐานสิบ
|
เลขฐานสิบหก
|
เลขฐานสิบ
|
เลขฐานสิบหก
|
0
|
0
|
8
|
8
|
1
|
1
|
9
|
9
|
2
|
2
|
10
|
A
|
3
|
3
|
11
|
B
|
4
|
4
|
12
|
C
|
5
|
5
|
13
|
D
|
6
|
6
|
14
|
E
|
7
|
7
|
15
|
F
|
เลขฐานสิบหก N16 ซึ่งมีจำนวนเต็ม n หลัก จำนวนทศนิยม m หลัก จะมีค่าดังสมการ
N16 =
an-1(16)n-1+an-2(16)n-2+…+a1(16)1+a0(16)0+a-1(16)-1+a-2(16)-2+…+
a-(m-1)(16)-m+1+ a-m(8)-m
1.7 การแปลงเลขฐานสอง เลขฐานแปดและเลขฐานสิบหก ให้เป็น
เลขฐานสิบ
เนื่อง จากมนุษย์มีความคุ้นเคยกับเลขฐานสิบสามารถเข้าใจเมื่อได้มีการสื่อความหมาย ด้วยเลขฐานสิบจึงทำให้เราต้องศึกษาวิธีการเปลี่ยนหรือแปลงค่าเลขฐานต่าง ๆ ให้เป็นเลขฐานสิบ เพื่อความเข้าใจได้มากขึ้น ซึ่งเราอาศัยหลักการเปลี่ยนเป็นเลขฐานสิบจากเลขฐานต่าง ๆ ได้ไม่ยากนัก สามารถแปลงเขฐานต่าง ๆ เป็นเลขฐานสิบได้โดยการนำเลขแต่ละตำแหน่งของฐานนั้น ๆ ไปคูณด้วยน้ำหนัก (Weighting) หรือค่าประจำหลักของเลขฐานนั้น ๆ แล้วนำมาบวกกัน เราก็จะได้ค่าออกมาเป็นเลขฐานสิบนั่นเอง
ตัวอย่างที่ 1.1 จงแปลงเลขฐานสอง 1101101 ให้เป็นเลขฐานสิบ
วิธีทำ
11011012
= (1´26) + (1´25) + (0´24) + (1´23) + (1´22) + (0´21) + (1´20)
= 64 + 32 + 0 + 8 + 4 + 0 + 1
= 10910
ตัวอย่างที่ 1.2 จงแปลงเลขฐานสอง 0.1011 ให้เป็นเลขฐานสิบ
วิธีทำ
0.1011
2 = (1´2-1) + (0´2-2) + (1´2-3) + (1´2-4)
= 1´0.5
+ 0´0.25
+ 1´0.125
+ 1´0.0625
= 0.5 + 0 + 0.125 + 0.0625
= 0.687510
ตัวอย่างที่ 1.3 จงแปลงเลขฐานสอง 11101.011 ให้เป็นเลขฐานสิบ
วิธีทำ
11101.011
2 = (1´24) + (1´23) + (1´22) + (0´21) + (1´20) + (0´2-1)+ (1´2-2)+ (1´2-3)
= 1´16
+ 1´8
+ 1´4
+ 0´2
+ 1´1
+ 0´0.5
+ 1´0.25
+ 1´0.125
= 16 +
8 + 4
+ 0 +
1 + 0
+ 0.25 +
0.125
= 29.37510
ตัวอย่างที่ 1.4 จงแปลงเลขฐานแปด 2374 ให้เป็นเลขฐานสิบ
วิธีทำ
23748
= (2´83) + (3´82) + (7´81) + (4´80)
= 2´512
+ 3´64
+ 7´8
+ 4´1
= 1024 +
192 + 56
+ 4
= 127610
ตัวอย่างที่ 1.5 จงแปลงเลขฐานแปด 0.325 ให้เป็นเลขฐานสิบ
วิธีทำ
0.3258
= (3´8-1) + (2´8-2) + (5´8-3)
= 3´0.125 + 2´0.015625
+ 5´0.001953
= 0.375 +
0.3125 + 0.009765
= 0.41601510
ตัวอย่างที่
1.6 จงแปลงเลขฐานสิบหก E5
ให้เป็นเลขฐานสิบ
วิธีทำ
E516
= (E´161) + (5´160)
= 14´16
+ 5´1
= 224 +
5
= 22910
ตัวอย่างที่ 1.7 จงแปลงเลขฐานสิบหก B2F8 ให้เป็นเลขฐานสิบ
วิธีทำ
B2F816
= (B´163) + (2´162) + (F´161) + (8´160)
= 11´4096 + 2´256
+ 15´16 + 8´1
= 45056 +
512 + 240 + 8
= 4581610
1.8 การแปลงเลขฐานสิบให้เป็น เลขฐานสอง เลขฐานแปดและ
เลขฐานสิบหก
การแปลงเลขฐานสิบให้เป็นเลขฐานใด ๆ ก็ตาม จะมีวิธีการคิดเช่นเดียวกัน โดยการแบ่งลักษณะการแปลงได้ 2 กรณี คือ
1. กรณีเลขฐานสิบที่ต้องการแปลงเป็นเลขจำนวนเต็ม
เราทำการแปลงให้เป็นฐานใด ๆ ได้โดยการนำเลขจำนวนเต็มฐานสิบนั้น ๆ
มาหารด้วยเลขฐานที่ต้องการเปลี่ยน โดยเก็บเศษที่เหลือจากการหารเอาไว้
จากนั้นนำคำตอบที่เหลือจากการหารนำไปหารกับเลขฐานที่ต้องการแปลงและเก็บเศษจากการหารเอาไว้อีก
กระทำอย่างนี้ซ้ำ ๆ จนกระทั่งไม่สามารถนำคำตอบที่เหลือจากการหารไปหารได้อีก
เศษที่เหลือจากการหารในแต่ละครั้งนำมาเขียนรวมกันก็จะเป็นผลลัพธ์ของเลขฐานที่ต้องการเปลี่ยน
โดยเศษที่เหลื่อจากการหารในครั้งแรกสุด จะเป็นตัวที่มีนัยสำคัญน้อยที่สุด (Least
significant digit หรือ LSD) ส่วนเศษที่เหลือจากการหารในครั้งสุดท้ายจะเป็นตัวที่มีนัยสำคัญสูงที่สุด
(Most significant digit หรือ MSD)
ตัวอย่างที่ 1.8 จงแปลง 2510 ให้เป็นเลขฐานสอง
วิธีทำ เศษ
25 ¸ 2 = 12 1 (LSD
หรือ LSB)
12 ¸ 2 = 6 0
6 ¸ 2 = 3 0
3 ¸ 2 = 1 1
1 ¸ 2 = 0 1 (MSD
หรือ MSB)
\ 2510 = 110012
2. กรณีเลขฐานสิบที่ต้องการแปลงเป็นเลขเศษส่วน(เลขทศนิยม) ซึ่ง
ไม่ใช่จำนวนเต็มเราทำการแปลงให้เป็นฐานใด
ๆ ได้ โดยการนำเลขฐานสิบนั้น ๆ
คูณด้วยเลขฐานที่จะเปลี่ยนแล้วเก็บค่าผลลัพธ์ที่ได้จากการคูณเฉพาะเลขจำนวน
เต็มที่อยู่หน้าจุดทศนิยม
จากนั้นนำคำตอบที่ได้จากการคูณในครั้งแรกเฉพาะเลขทศนิยมเท่านั้นมาทำการคูณ
กับเลขฐานที่ต้องการเปลี่ยนอีกแล้วเก็บค่าผลลัพธ์ที่ได้จากการคูณเฉพาะเลข
จำนวนเต็มที่อยู่หน้าจุดทศนิยมอีกครั้ง
กระทำอย่านี้ซ้ำ ๆ จนกระทั่งได้คำตอบที่เราเห็นว่าเหมาะสม
แล้วจึงนำค่าที่เราเก็บไว้มาเขียนเป็นเลขฐานที่เราต้องการซึ่งจะเป็นทศนิยม
โดยค่าจำนวนเต็มที่ได้จากการเก็บในครั้งแรกจะเป็น MSD
ตัวอย่างที่ 1.8 จงแปลง 0.312510 ให้เป็นเลขฐานสอง
วิธีทำ จำนวนเต็มที่เก็บ
0.3125 ´ 2 = 0.625 0 (MSD
หรือ MSB)
0.625 ´ 2 = 1.25 1
0.25 ´ 2 = 0.50 0
0.50 ´ 2 = 1.00 1
\ 0.312510 = 0.01012
กรณีเลขฐานสิบที่ต้องการแปลงเป็นเลขฐานอื่น ๆ
เป็นเลขที่ผสมระหว่างเลขจำนวนเต็มและเลขทศนิยม (เลขจำนวนจริง)
ก็ให้ทำการแยกแปลง 2 ครั้ง
โดยแยกแปลงแบบหารสำหรับจำนวนเต็ม และ คูณสำหรับทศนิยม แล้วนำคำตอบมารวมกัน
ตัวอย่างที่ 1.9 จงแปลง 18.62510 ให้เป็นเลขฐานสอง
วิธีทำ แยกคิด 2 ครั้ง คือ 1810 และ 0.62510
ก) แปลง
1810 ให้เป็นฐานสอง
เศษ
18 ¸ 2 = 9 0 (LSD
หรือ LSB)
9 ¸ 2 = 4 1
4 ¸ 2 = 2 0
2 ¸ 2 = 1 0
1 ¸ 2 = 0 1 (MSD
หรือ MSB)
\ 1810 = 100102
ข) แปลง
0.62510 ให้เป็นฐานสอง
จำนวนเต็มที่เก็บ
0.625 ´ 2 = 1.250 1 (MSD
หรือ MSB)
0.250 ´ 2 = 0.500 0
0.5
´ 2 = 1.0 1
0.0 ´ 2 = 0 0
\ 0.62510 = 0.1012
\ 18.62510 = 10010.1012
ตัวอย่างที่ 1.10 จงแปลง 359.2810
ให้เป็นเลขฐานแปด
วิธีทำ แยกคิด 2 ครั้ง คือ 35910 และ 0.2810
ก) แปลง
35910 ให้เป็นฐานแปด
เศษ
359
¸ 8 = 44 7 (LSD)
44 ¸ 8 = 5 4
5 ¸ 8 = 0 5 (MSD)
\ 35910 = 5478
ข) แปลง
0.2810 ให้เป็นฐานแปด
จำนวนเต็มที่เก็บ
0.28 ´ 8 = 2.24 2 (MSD)
0.24 ´ 8 = 1.92 1
0.92
´ 8 = 7.36 7
0.36 ´ 8 = 2.88 2
0.88 ´ 8 = 7.04 7
\ 0.2810 = 0.217278
\ 359.2810 = 547.217278
ตัวอย่างที่ 1.11 จงแปลง 650.0510
ให้เป็นเลขฐานสิบหก
วิธีทำ แยกคิด 2 ครั้ง คือ 65010 และ 0.0510
ก) แปลง
65010 ให้เป็นฐานสิบหก
เศษ
650
¸ 16 = 40 10
คือ A (LSD)
40 ¸ 16 = 2 8
2 ¸ 16 = 0 2 (MSD)
\ 65010 = 28A16
ข) แปลง
0.0510 ให้เป็นฐานสิบหก
จำนวนเต็มที่เก็บ
0.05 ´ 16 = 0.80 0 (MSD)
0.80 ´ 16 = 1.28 1
0.28
´ 16 = 3.48 3
0.48 ´ 16 = 7.68 7
0.68 ´ 16 = 10.88 10 คือ A
\ 0.0510 = 0.0137A16
\ 650.0510 = 28A.0137A16
1.9 การแปลงระหว่างเลขฐานแปดกับเลขฐานสอง
จากหัวข้อที่เราได้ศึกษามาแล้ว
ถ้าเราต้องการที่จะแปลงเลขระหว่างเลขฐานแปดกับเลขฐานสองนั้น
เราจะกระทำได้โดยแปลงเลขฐานที่ต้องการแปลงให้เป็นเลขฐานสิบก่อนจากนั้นจึงค่อยแปลงจากเลขฐานสิบไปเป็นเลขฐานที่ต้องการ
ซึ่งจะเห็นว่ามีวิธีการที่ยุ่งยากเสียเวลามาก ถ้าเราสังเกตจากตารางดังต่อไปนี้
ซึ่งเทียบค่าระหว่างเลขฐานสองกับเลขฐานแปดจะเห็นว่า
ความสัมพันธ์ของเลขฐานแปดที่เป็นเลขพื้นฐาน 1 ตัว
สามารถแทนด้วยเลขฐานสองขนาด 3 bit พอดี
เลขฐานสิบ |
เลขฐานสอง
|
เลขฐานแปด
|
0
|
000
|
0
|
1
|
001
|
1
|
2
|
010
|
2
|
3
|
011
|
3
|
4
|
100
|
4
|
5
|
101
|
5
|
6
|
110
|
6
|
7
|
111
|
7
|
ดังนั้นในการแปลงระหว่างเลขฐานสองกับเลขฐานแปดเราสามารถกระทำได้โดยการจับกลุ่มของเลขฐานสอง
3 bit ต่อเลขฐานแปด 1 หลัก
โดยเทียบค่ากัน ตัวต่อตัว
ตัวอย่างที่ 1.12 จงแปลงเลขฐานแปดต่อไปนี้เป็นเลขฐานสอง
ก)
478
ข)
7528
ค)
37.128
วิธีทำ
ก) 478 = 100 1112
ข) 7528 = 111 101
0102
ค) 37.128 = 011 111 . 001 0102
ตัวอย่างที่ 1.13 จงแปลงเลขฐานสองต่อไปนี้เป็นเลขฐานแปด
ก)
1011110012
ข)
10111001102
ค)
1001101.10112
วิธีทำ
ก) 101 111 0012 = 5 7 18
ข) 001
011 100 1102 = 1
3 4 68
ค) 001
001 101 . 101 1002 = 1
1 5 . 5 48
1.10 การแปลงระหว่างเลขฐานสิบหกกับเลขฐานสอง
ใน
ลักษณะเดียวกัน
ถ้าเราต้องการที่จะแปลงเลขระหว่างเลขฐานสิบหกกับเลขฐานสองนั้น
เราจะกระทำได้โดยแปลงเลขฐานที่ต้องการแปลงให้เป็นเลขฐานสิบก่อนจากนั้นจึง
ค่อยแปลงจากเลขฐานสิบไปเป็นเลขฐานที่ต้องการ
ซึ่งจะเห็นว่ามีวิธีการที่ยุ่งยากเสียเวลามากเช่นเดียวกัน
ถ้าเราสังเกตจากตารางดังต่อไปนี้
ซึ่งเทียบค่าระหว่างเลขฐานสองกับเลขฐานสิบหกก็จะเห็นเช่นกันว่า
ความสัมพันธ์ของเลขฐานสิบหกที่เป็นเลขพื้นฐาน 1 ตัว
สามารถแทนด้วยเลขฐานสองขนาด 4 bit พอดี
เลขฐานสิบ |
เลขฐานสอง
|
เลขฐานสิบหก
|
0
|
0000
|
0
|
1
|
0001
|
1
|
2
|
0010
|
2
|
3
|
0011
|
3
|
4
|
0100
|
4
|
5
|
0101
|
5
|
6
|
0110
|
6
|
7
|
0111
|
7
|
8
|
1000
|
8
|
9
|
1001
|
9
|
10
|
1010
|
A
|
11
|
1011
|
B
|
12
|
1100
|
C
|
13
|
1101
|
D
|
14
|
1110
|
E
|
15
|
1111
|
F
|
ดังนั้นในการแปลงระหว่างเลขฐานสองกับเลขฐานสิบหกเราสามารถกระทำได้โดยการจับกลุ่มของเลขฐานสอง
4 bit ต่อเลขฐานสิบหก 1 หลัก
โดยเทียบค่ากัน ตัวต่อตัวเช่นเดียวกับฐานแปด
ตัวอย่างที่ 1.14 จงแปลงเลขฐานสิบหกต่อไปนี้เป็นเลขฐานสอง
ก)
CF3716
ข)
975216
ค)
D27.8216
วิธีทำ
ก) CF3716 = 1100 1111 0011 01112
ข) 975216 = 1001 0111 0101 00102
ค) D27.8216 = 1101 0010 0111 . 1000 00102
ตัวอย่างที่ 1.15 จงแปลงเลขฐานสองต่อไปนี้เป็นเลขฐานสิบหก
ก)
1011101110012
ข)
10111001111102
ค)
100111101.1100112
วิธีทำ
ก) 1011 1011 10012 = B B 916
ข) 0001
0111 0011 11102 = 1
7 3 E16
ค) 0001
0011 1101 . 1100 11002 = 1
3 D . C C16
1.11 การบวกเลขฐานต่าง ๆ
การบวกเลขฐานสอง มีวิธีการคล้ายคลึงกับการบวกเลขฐานสิบแต่จะมีหลักเกณฑ์ที่ง่ายกว่า ดังนี้
0
+ 0 = 0
0 +
1 = 1
1 +
0 = 1
1 +
1 = 0 ทดไปหลักต่อไปอีก 1
ตัวอย่างที่ 1.16
ก) 1002 410
+102 +210
1102 610
ข) 11112 1510
+11002 +1210
110112 2710
ค) 101.112
+ 11.012
1001.002
การบวกเลขฐานแปด มีวิธีการบวกคล้ายคลึงกับการบวกเลขฐานสิบเช่นเดียวกัน ซึ่งมีตารางการบวก
ดังนี้
ตารางการบวกเลขฐานแปด
+
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
0
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
1
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
10
|
2
|
2
|
3
|
4
|
5
|
6
|
7
|
10
|
11
|
3
|
3
|
4
|
5
|
6
|
7
|
10
|
11
|
12
|
4
|
4
|
5
|
6
|
7
|
10
|
11
|
12
|
13
|
5
|
5
|
6
|
7
|
10
|
11
|
12
|
13
|
14
|
6
|
6
|
7
|
10
|
11
|
12
|
13
|
14
|
15
|
7
|
7
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
ตัวอย่างที่ 1.17 จงบวกเลขฐานแปดต่อไปนี้
ก) 758 +
338
ข) 35278 +
6748
วิธีทำ
ก) 758
+338
1308
ข) 35278
+
6748
44238
การบวกเลขฐานสิบหก มีวิธีการบวกคล้ายคลึงกับการบวกเลขฐานสิบเช่นเดียวกัน
ซึ่งในขั้นแรกหากยังไม่มีความชำนาญในการบวกเลขฐานแปดและฐานสิบหกก็อาจจำเป็นต้องใช้ตารางการบวกช่วยได้
ดังนี้
ตารางการบวกเลขฐานสิบหก
+
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
A
|
B
|
C
|
D
|
E
|
F
|
0
|
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
A
|
B
|
C
|
D
|
E
|
F
|
1
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
A
|
B
|
C
|
D
|
E
|
F
|
10
|
2
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
A
|
B
|
C
|
D
|
E
|
F
|
10
|
11
|
3
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
A
|
B
|
C
|
D
|
E
|
F
|
10
|
11
|
12
|
4
|
4
|
5
|
6
|
7
|
8
|
9
|
A
|
B
|
C
|
D
|
E
|
F
|
10
|
11
|
12
|
13
|
5
|
5
|
6
|
7
|
8
|
9
|
A
|
B
|
C
|
D
|
E
|
F
|
10
|
11
|
12
|
13
|
14
|
6
|
6
|
7
|
8
|
9
|
A
|
B
|
C
|
D
|
E
|
F
|
10
|
11
|
12
|
13
|
14
|
15
|
7
|
7
|
8
|
9
|
A
|
B
|
C
|
D
|
E
|
F
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
8
|
8
|
9
|
A
|
B
|
C
|
D
|
E
|
F
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
9
|
9
|
A
|
B
|
C
|
D
|
E
|
F
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
A
|
A
|
B
|
C
|
D
|
E
|
F
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
B
|
B
|
C
|
D
|
E
|
F
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
1A
|
C
|
C
|
D
|
E
|
F
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
1A
|
1B
|
D
|
D
|
E
|
F
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
1A
|
1B
|
1C
|
E
|
E
|
F
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
1A
|
1B
|
1C
|
1D
|
F
|
F
|
10
|
11
|
12
|
13
|
14
|
15
|
16
|
17
|
18
|
19
|
1A
|
1B
|
1C
|
1D
|
1E
|
ตัวอย่างที่ 1.18 จงบวกเลขฐานสิบหกต่อไปนี้
1A816 +
67B16
วิธีทำ คอลัมน์ 3 2 1
1
A 8
+ 6 7 B
8
2 3
วิธีคิด
คอลัมน์ 1 :
8 +
B = 810 +
1110
= 1910
= 16
+ 3
= 1316 ผลบวกคือ 3, ตัวทดคือ 1
คอลัมน์ 2 :
1 + A
+ 7 = 1 + 1010 +
710
= 1810
= 16
+ 2
= 1216 ผลบวกคือ 2, ตัวทดคือ 1
คอลัมน์ 3 :
1 +
1 + 6 = 810
= 816 ผลบวกคือ 8, ไม่มีตัวทด
1.12 การลบเลขฐานต่าง ๆ
การลบเลขฐานสอง การลบเลขฐานสองก็จะมีลักษณะคล้ายกับการลบเลขฐานสิบโดยทั่วไป
นั่นคือกรณีตัวตั้งมีค่ามากกว่าตัวลบ เราก็สามารถลบกันได้ทันที
แต่หากตัวตั้งมีค่าน้อยกว่าตัวลบเราก็จำเป็นต้องยืมตัวถัดไปมา 1 ดังเช่นเลขฐานสิบ ซึ่งการลบเลขฐานสองมีตารางการลบดังนี้
0 -
0 = 0 ตัวยืม 0
0 -
1 = -1 ตัวยืม 1
1 -
0 = 1 ตัวยืม 0
1 -
1 = 0 ตัวยืม 0
ตัวอย่างที่
1.19 จงลบเลขฐานสองต่อไปนี้
1012 -
0112
วิธีทำ 1 0
12 510
- 0 1
12
- 310
0 1
02
210
การลบเลขฐานแปดและฐานสิบหก การลบเลขฐานแปดและเลขฐานสิบหกจะมีหลักการเหมือนกับเลขฐานสองและเลขฐานสิบ
แต่ดูเหมือนว่าเราจะไม่มีควสมคุ้นเคยนักในการหักลบเลขหรือยืมค่าระหว่างหลักต่าง ๆ
กัน ฉะนั้นหากยังไม่มีความชำนาญในการลบเลข ในระยะแรกเราสามารถ
ใช้ตารางบวกเลขฐานแปดหรือตารางบวกเลขฐานสิบหก ช่วยในการหาผลลบได้
โดยดูว่าตัวตั้งหรือตัวลบเลขจำนวนใดมีค่าน้อยกว่า
เปรียบเทียบทีละหลักเริ่มจาหลักที่มีนัยสำคัญน้อยที่สุด (LSD) นำเลขจำนวนที่น้อยกว่ามาไล่ตามคอลัมน์ริมซ้ายสุด เมื่อพบเลขตัวนี้แล้ว
ก็ให้กวาดไปตามแนวนอนจนพบตัวเลขอีกตัวที่มากกว่า ผลลบของเลขสองจำนวนนี้คือ
ตัวเลขบนสุดที่ตรงกับเลขในแถวนี้ เช่น 78 - 48 กระทำโดยใช้ 4 ซึ่งเป็นจำนวนที่น้อยกว่านำมาไล่ที่คอลัมน์ริมซ้ายมือสุด
เมื่อพบแล้วจึงกวาดมาตามแนวนอนทางขวามือจนพบเลข 7 มองขึ้นด้านบนสุดจะพบเลข
3 ซึ่งจะเป็นคำตอบที่เป็นผลลบของเลขสองจำนวนนี้
1.13 การคูณเลขฐานต่าง ๆ
การคูณเลขฐานต่าง ๆ จะมีหลักการคูณที่เหมือนกับการคูณเลขฐานสิบ
สำหรับการคูณเลขฐานสองนั้น ดูเหมือนว่าจะมีความง่ายเป็นอย่างมากในการคูณ เนื่องจาก
0 คูณอะไรก็จะได้ 0 ส่วน 1 นำไปคูณอะไร ก็จะได้ตัวตั้งนั้น
และเนื่องจากว่าในการแปลงค่าระหว่างเลขฐานสองกับเลขฐานแปดและเลขฐานสิบหกนั้นมีความยุ่งยากน้อยมาก
ทำให้ในการทำการบวก ลบ คูณ หาร ของเลขฐานแปดและเลขฐานสิบหก
เราจึงนิยมเปลี่ยนเป็นเลขฐานสองก่อนแล้วจึงหาคำตอบ
เสร็จแล้วจึงเปลี่ยนกลับเป็นเลขฐานแปดหรือเลขฐานสิบหกตามที่ต้องการ
ตารางการคูณเลขฐานสอง
´
|
0
|
1
|
0
|
0
|
0
|
1
|
0
|
1
|
ตัวอย่างที่
1.20 จงคูณ 10112 ด้วย 10012
วิธีทำ 10112
´10012
10112
00002
00002
10112
11000112
1.14 การหารเลขฐานต่าง ๆ
การหารเลขฐานต่าง ๆ เราสามารถนำเอาตารางการคูณเลขฐานนั้น ๆ
และนำความรู้จากเลขฐานสิบมาใช้ โดยจะหารเลขฐานสองจะเป็นการสะดวกที่สุด
ตัวอย่างที่
1.21 จงคูณ 11002 ด้วย 1002
วิธีทำ 112
100
)1011
100
100
100
000
1.15 คอมพลีเมนต์ (Complement)
ระบบเลขที่ใช้กันใน Computer จะเป็นเลข Binary
ดังนั้นหากต้องการบวกและลบเลขจึงจำเป็นต้องมีทั้งวงจรบวกเลขและลบเลข
จึงทำให้เกิดความยุ่งยากมาก
อีกทั้งหากผลลัพธ์เกิดค่าที่ติดลบจะเกิดปัญหาว่าจะแสดงเครื่องหมายอย่างไร ดังนั้น
ในระบบ Computer จะมีการนำ Complement มาใช้ในการลบเลขแต่จะใช้วิธีการบวกกับ
Complement ของตัวลบ ซึ่งจะได้ผลลบ และหากผลลัพธ์เกิดมีค่าติดลบ
ก็จะแสดงค่าผลลัพธ์เป็นเลข Complement
การคอมพลีเมนต์เลขฐานสอง ในระบบเลข Binary จะมี Complement อยู่ 2 อย่าง คือ
1’s
complement คือการกลับสถานะของสัญญาณ จาก 0 เป็น 1 และจาก 1 เป็น 0
ทุก ๆ บิต เช่น 1’s complement ของ 1100011
คือ 0011100
2’s
complement คือผลบวกของ 1’s complement กับ
เช่น 2’s complement ของ 1100011 คือ 0011100
+ 1 = 0011101 ซึ่งมีวิธีคิดแบบลัดคือ ให้มองจากบิตต่ำสุด(ขวาสุด) ไปยังบิตสูงสุด(ซ้ายสุด)
หา 1 ตัวแรกให้พบ หากยังไม่พบ
ให้คงค่าเดิมเอาไว้ จนกระทั้งพบ 1 ตัวแรกก็ยังคง 1 ไว้ หลังจากนั้นให้เปลี่ยนค่าที่เหลือ จาก0 เป็น 1
และ จาก 1 เป็น 0 ทั้งหมด
ตัวอย่างที่ 1.22
Binary
Number 1’s
complement 2’s
complement
10101
01010
01011
10111
01000
01001
111100 000011
000100
11011011 00100100 00100101
การคอมพลีเมนต์เลขฐานสิบ ในระบบเลขฐานสิบจะมี Complement อยู่ 2 อย่าง เช่นกันคือ
9’s
complement คือการนำเลขฐานสิบในหลักต่าง ๆ แต่ละหลักมาลบกับ 9
เช่น 9’s complement ของ 115 คือ 999 – 115 = 884
10’s
complement คือ การนำ 9’s complement มาบวกกับ
1 เช่น 10’s complement ของ 115
คือ 999 – 115
+ 1 = 885
การคอมพลีเมนต์เลขฐานแปด ในระบบเลขฐานแปดจะมี Complement อยู่ 2 อย่าง เช่นกันคือ
7’s
complement คือการนำเลขฐานแปดในหลักต่าง ๆ แต่ละหลักมาลบกับค่าสูงสุดคือ
7 เช่น 7’s complement ของ 115 คือ 777 – 115 = 662
8’s
complement คือ การนำ 7’s complement มาบวกกับ
1 เช่น 8’s complement ของ 115 คือ 777 – 115 + 1 = 663
การคอมพลีเมนต์เลขฐานสิบหก ในระบบเลขฐานสิบหกจะมี Complement อยู่ 2 อย่าง เช่นกันคือ
15’s
complement คือการนำเลขฐานสิบหกในหลักต่าง ๆ
แต่ละหลักมาลบกับค่าสูงสุดคือ F เช่น 15’s complement
ของ 115 คือ FFF – 115 = EEA
16’s
complement คือ การนำ 15’s complement มาบวกกับ
1 เช่น 16’s complement ของ 115
คือ FFF – 115
+ 1 = EEB
จะเห็นว่าทุก ๆ ฐาน จะมีคอมพลีเมนต์ของแต่ละฐานอยู่ 2 ชนิด คือคอมพลีเมนต์ฐาน (radix complement or r’s complement) เช่น คอมพลีเมนต์ของ 2 (2 r’s complement) ซึ่งเป็นของระบบเลขฐานสอง
หรือ คอมพลีเมนต์ของ 10 (10 r’s complement) ซึ่งเป็นของระบบเลขฐานสิบ
ส่วนคอมพลีเมนต์อีกชนิดหนึ่งคือ คอมพลีเมนต์ฐานลบหนึ่ง (radix-minus-one complement หรือ diminished
radix complement or (r-1)’s complement) เช่น คอมพลีเมนต์ของ 1
(1 r’s complement) ซึ่งเป็นของระบบเลขฐานสอง หรือ คอมพลีเมนต์ของ 9
(9 r’s complement) ซึ่งเป็นของระบบเลขฐานสิบ
1.16 การลบเลขโดยใช้คอมพลีเมนต์ฐาน
จากประโยชน์ของเลขคอมพลีเมนต์ที่ใช้ในการหาผลลบของระบบเลขโดยใช้การบวกและสามารถแสดงค่าที่ติดลบได้นั้น
ทำให้ในระบบ computer นิยมนำ complement ใช้ในการลบเลข ซึ่งหากใช้คอมพลีเมนต์ฐานในการลบเลขมีวิธีการคิดดังนี้
1)
หาคอมพลีเมนต์ฐานของตัวลบ
ถ้าตัวลบมีจำนวนหลักน้อยกว่าตัวตั้ง
ก็ต้องทำจำนวนหลักของตัวลบให้มีจำนวนหลักเท่ากับตัวตั้งก่อนแล้วจึงหาค่อยคอมพลีเมนต์ฐาน
2)
นำตัวตั้งมาบวกกับคอมพลีเมนต์ฐานของตัวลบที่หาได้จากข้อ
1)
3)
ตรวจสอบผลลัพธ์ที่ได้จากการบวกในข้อ 2) ว่ามีตัวทดสุดท้าย
(End around carry)หรือไม่
-
ถ้ามี End around carry ให้ตัดทิ้ง
ที่เหลือจะได้ค่าผลลัพธ์ที่ได้จากการลบ โดยมีค่าเป็นบวก
-
ถ้าไม่มี End around carry ก็ให้หาคอมพลีเมนต์ฐานของผลลัพธ์ที่ได้
ซึ่งจะได้ผลลัพธ์ที่ได้จาการลบตามต้องการ แต่มีค่าเป็นลบ
ตัวอย่างที่ 1.23 จงลบเลขฐานสองต่อไปนี้ โดยใช้ 2’s complement
ก)
1100
– 1011
ข)
10011
– 11100
วิธีทำ ก) ลบแบบธรรมดา ลบโดยใช้ 2’s complement
1100
1100
- 1011 2’s
complement + 0101
0001 มี End around carry ให้ตัดทิ้ง 1 0001
ผลลบ คือ 0001
ข) ลบแบบธรรมดา ลบโดยใช้ 2’s complement
10011
10011
- 11100 2’s
complement + 00100
- 01001 ไม่มี End around carry 10111
ผลลบ คือ –( 2’s complement ของ 10111) = -01001
ตัวอย่างที่ 1.24 จงลบเลขฐานสิบต่อไปนี้ โดยใช้ 10’s complement
ก)
196 – 155
ข)
3250 – 72532
วิธีทำ ก) ลบแบบธรรมดา ลบโดยใช้ 10’s complement
196
196
- 155 10’s
complement + 845
41 มี End around carry ให้ตัดทิ้ง 1 041
ผลลบ คือ 41
ข) ลบแบบธรรมดา ลบโดยใช้ 10’s complement
3250
3250
- 75232 10’s
complement + 27468
- 69282 ไม่มี End around carry 30718
ผลลบ คือ –( 10’s complement ของ 30718) = -69282
1.16 การลบเลขโดยใช้คอมพลีเมนต์ฐานลบหนึ่ง
การ
ใช้คอมพลีเมนต์ฐานลบหนึ่งในการหาผลลบของระบบเลขโดยใช้การบวกจะมีวิธีการที่
เหมือนกับการลบโดยใช้คอมพลีเมนต์ฐานแต่ต่างกันตรงการพิจารณาตัวทดสุดท้าย
(End around carry) ซึ่งหากใช้คอมพลีเมนต์ฐานลบหนึ่งในการลบเลขมีวิธีการคิดดังนี้
1) หาคอมพลีเมนต์ฐานลบหนึ่งของตัวลบ ถ้าตัวลบมีจำนวนหลักน้อยกว่าตัวตั้ง
ก็ต้องทำจำนวนหลักของตัวลบให้มีจำนวนหลักเท่ากับตัวตั้งก่อนแล้วจึงหาค่อยคอมพลีเมนต์ฐานลบหนึ่ง
2)
นำตัวตั้งมาบวกกับคอมพลีเมนต์ฐานลบหนึ่งของตัวลบที่หาได้จากข้อ
1)
3)
ตรวจสอบผลลัพธ์ที่ได้จากการบวกในข้อ 2) ว่ามีตัวทดสุดท้าย
(End around carry)หรือไม่
-
ถ้ามี End around carry ให้นำไปบวกกับหลักที่มีนัยสำคัญน้อยที่สุด
(LSD) ซึ่งจะได้ค่าผลลัพธ์ที่ได้จากการลบตามต้องการ
โดยมีค่าเป็นบวก
-
ถ้าไม่มี End around carry ก็ให้หาคอมพลีเมนต์ฐานลบหนึ่งของผลลัพธ์ที่ได้
ซึ่งจะได้ผลลัพธ์ที่ได้จาการลบตามต้องการ แต่มีค่าเป็นลบ
ตัวอย่างที่ 1.25 จงลบเลขฐานสองต่อไปนี้ โดยใช้ 1’s complement
ก) 11001
– 10011
ข)
1001
– 1100
วิธีทำ ก) ลบแบบธรรมดา ลบโดยใช้ 1’s complement
11001
11001
- 10011 1’s
complement + 01100
00110 มี End around carry ให้บวกเพิ่ม 1 00101
+ 1
00110
ผลลบ คือ 00110
ข) ลบแบบธรรมดา ลบโดยใช้ 1’s complement
1001
1001
- 1101 1’s
complement + 0010
- 0100 ไม่มี End around carry 1011
ผลลบ คือ –( 1’s complement ของ 1011) = -0100
ตัวอย่างที่ 1.24 จงลบเลขฐานสิบต่อไปนี้ โดยใช้ 9’s complement
ค)
54 – 21
ง)
3250 – 72532
วิธีทำ ก) ลบแบบธรรมดา ลบโดยใช้ 9’s complement
54
54
- 21 9’s
complement + 78
33 มี End around carry ให้บวกเพิ่ม 1 32
+
1
33
ผลลบ คือ 33
ข) ลบแบบธรรมดา ลบโดยใช้ 9’s complement
3250
3250
- 75232 9’s
complement + 27467
- 69282 ไม่มี End around carry 30717
ผลลบ คือ –( 10’s complement ของ 30717) = -69282
0 comments:
Post a Comment