คณิตศาสตร์ คลายเครียด

วันอังคารที่ 25 สิงหาคม พ.ศ. 2552

ระบบตัวเลข (Number System)

ระบบตัวเลข (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

5 ความคิดเห็น:

  1. เยี่ยมมากความรู้มากเกินตาลายแล้วอ่านไม่ไหว ขอสั้นๆหน่อยนะคะ

    ตอบลบ
  2. เป็นสื่อที่ให้ความรู้ และสามารถทำความเข้าใจได้ด้วยตัวเอง

    ตอบลบ
  3. สวัสดีค่ะ คุณครู..หนูชื่อ ภัทรารัตน์ ม. 2/4 ค่ะ
    หนูจะพยายาม ศึกษาให่เก่งเหมือนครูเรยค่ะ ^^

    ตอบลบ
  4. สวัสดีค่ะคุณครู หนูวิภาวดี สุภาพเพชร(ฉุยฉาย)
    4/6นะคะ...............
    หนูอยากเก่งเหมือนครูจังเลยค่ะ!..........

    ตอบลบ
  5. ครูข๋า ครูอธิบายด้ายเข้าจัยมากเลยค่ะ
    ตอนม.2หนูด้ายเรียนกับครูอยู่อ่ะค่ะ

    ตอบลบ