หน่วยที่ 1 ระบบจำนวน (Number System)
ตอนที่ 1 คณิตศาสตร์พื้นฐานสำหรับคอมพิวเตอร์
คณิตศาสตร์ที่เกี่ยวข้องกับการทำงานของคอมพิวเตอร์ ทั้งฮาร์ดแวร์และซอฟต์แวร์ การออกแบบวงจรการทำงานของคอมพิวเตอร์อาศัยระบบเลขฐานสองเพราะคอมพิวเตอร์ใช้วงจรไฟฟ้าที่มีสถานะเพียง 2 อย่างเท่านั้นก็คือวงจรเปิดและวงจรปิด การออกแบบวงจรที่สั้นที่สุดอาศัยพีชคณิตที่เรียกว่าพีชคณิตบูลีนเพราะตัวแปรของพีชคณิตที่ใช้ในสถาปัตยกรรมคอมพิวเตอร์คือตัวแปรที่มีแค่ 2 สถานะ แทนวงจรเปิดและปิดเท่านั้น การค้นคืนระบบฐานข้อมูลจำเป็นต้องมีความรู้เรื่องทฤษฎีกราฟ ที่จะอธิบายเส้นทางเครือข่าย และ/หรือ ระดับชั้นในการจัดเก็บและค้นคืนข้อมูล การทำงานในลักษณะซ้ำซ้อนกันของการคำนวณต้องมีความรู้เรื่องฟังก์ชันเวียนเกิด และการเขียน อัลกอริทึ่มของซอฟต์แวร์ให้คอมพิวเตอร์ทำงานน้อยที่สุด
ตอนที่ 2 ระบบจำนวน
การแทนข้อมูลไม่ว่าจะเป็นอักขระ หรือ จำนวนเต็มและจำนวนจริง ในคอมพิวเตอร์ จะต้องเปลี่ยนเป็น ระบบเลขฐานสอง ทำให้จะต้องพิจารณาวิธีการที่เหมาะสมที่สุดในการแทนระบบจำนวนในคอมพิวเตอร์ เป็นที่ทราบกันว่าคอมพิวเตอร์มีความสามารถเพียงแต่บวกจำนวนเลขในระบบฐานสองได้เท่านั้น จึงต้องสร้างระบบการแทนข้อมูลที่ สามารถแทนได้ทั้งจำนวนบวกและจำนวนลบเพื่อว่าเอาจำนวนบวกกับจำนวนลบบวกกันจะได้มีความหมายเท่ากับลบกัน ดังนั้นคอมพิวเตอร์ที่บวกกันได้ก็สามารถลบกันได้ การบวกหลายๆครั้งก็เป็นการคูณ การลบหลายๆครั้งก็เป็นการหาร ทำให้ขยายการทำงานออกไปได้กว้างขวาง แต่ต้องไม่ลืมว่าจำนวนใดก็ตามที่แปลงเป็นเลขฐานสองแล้วไม่ลงตัวจะทำให้เกิดความผิดพลาดในการคำนวณขึ้นเสมอ
ระบบจำนวน
|
จำนวนจริง (Real Number) |
|
จำนวนอตรรกยะ (Irrational Number) เช่น , , |
|
จำนวนตรรกยะ (Rational Number) เช่น , , |
|
จำนวนเต็ม (Integer Number) |
|
จำนวนเศษส่วน (Fraction Number) |
|
จำนวนเต็มลบ (Negative Integer Number) |
|
ศูนย์ (Zero) |
|
จำนวนเต็มบวก (Positive Integer Number) |
ตอนที่ 3 ระบบเลขฐานที่เกี่ยวข้องกับคอมพิวเตอร์
คอมพิวเตอร์เข้าใจเฉพาะเลขฐานสองเท่านั้น แต่การเขียนด้วยเลขฐานสอง คือมีรหัส 0 กับ 1 เท่านั้นเป็นจำนวนมากๆทำให้คนเข้าใจยาก เราจึงใช้เลขฐานสองกลุ่มละ 4 หลัก แทน ทำให้เข้าใจและจำได้ง่ายขึ้น นั่นก็คือที่มาของเลขฐานสิบหก เพราะรหัสฐานสอง 4 หลักแทนด้วยเลขฐานสิบหก 1 หลัก
3.1 ระบบเลขฐาน
เลขฐาน หมายถึงกลุ่มข้อมูลที่มีจำนวนหลัก (Digit) ตามชื่อของฐาน
นั้นๆเช่น เลขฐานสอง ฐานแปด และฐานสิบ ประกอบด้วยข้อมูลตัวเลขจำนวนสองหลัก (0-1) แปดหลัก (0-7) และสิบหลัก (0-9) ตามลำดับ ดังรูปในตารางที่ 1
ในระบบคอมพิวเตอร์มีการใช้ระบบเลขฐาน 4 แบบ ประกอบด้วย
1).เลขฐานสอง (Binary Number)
2).เลขฐานแปด (Octal Number)
3).เลขฐานสิบ (Decimal Number)
4).เลขฐานสิบหก (Hexadecimal Number)
ตารางที่ 1 แสดงจำนวนตัวเลข ของเลขฐานต่างๆ
|
ชื่อฐานเลข |
จำนวนตัวเลขในแต่ละหลัก |
||||||||||||
|
ฐานสอง |
0 |
1 |
|
||||||||||
|
ฐานแปด |
0 |
1 |
2 |
... |
7 |
|
|||||||
|
ฐานสิบ |
0 |
1 |
2 |
... |
7 |
8 |
9 |
|
|||||
|
ฐานสิบหก |
0 |
1 |
2 |
... |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
การเขียนตัวเลขในรูปเลขฐานต่างๆโดยทั่วไปนิยมเขียนตัวเลขระบุฐานกำกับไว้ด้วยเสมอ (ยกเว้นเลขฐานสิบ) เช่น (1011) 2 หมายถึงเลขฐานสอง
(452) 8 หมายถึงเลขฐานแปด
(1000) 10หมายถึงเลขฐานสิบ แต่ทั่วไปไม่เขียนตัวเลขระบุฐานกำกับ
(3C) 16 หมายถึงเลขฐานสิบหก
1).เลขฐานสอง
คือตัวเลขที่มีค่าไม่ซ้ำกันสองหลัก ( 0 และ 1) เป็นเลขฐานเดียวที่เข้ากันได้กับ Hardware ของเครื่องคอมพิวเตอร์ได้โดยตรง เพราะการใช้เลขฐานอื่น จะสร้างความยุ่งยากให้กับเครื่องคอมพิวเตอร์อย่างมาก เช่น เลขฐานสิบมีตัวเลขที่เป็นสถานะที่ต่างกันถึง 10 ตัว ในขณะที่ระบบไฟฟ้ามีเพียง 2 สถานะ ซึ่งในช่วงเวลาหนึ่งๆมีเพียงสถานะเดียวเท่านั้น แต่ละหลักของเลขฐานสอง เรียกว่า Binary Digit (BIT)
2).เลขฐานแปด
เลขฐานแปด มีความสัมพันธ์กับเลขฐานสอง คือ เลขฐานสองจำนวน 3 หลัก แทนด้วยเลข
ฐานแปด 1 หลัก ดังนั้นเราจึงสามารถเขียนเลขฐานสอง 6 บิท แทนด้วยเลขฐานแปด 2 บิท การใช้เลขฐานแปดแทนเลขฐานสองทำให้จำนวนบิทสั้นลง
3).เลขฐานสิบ (Decimal Number)
คือตัวเลขที่มีค่าไม่ซ้ำกันสิบหลัก (0,1,2,...,9) เป็นเลขฐานที่มนุษย์คุ้นเคยและใช้ในชีวิตประจำวันมากที่สุด ตัวเลขที่มีจำนวนมากกว่า 9 ให้ใช้ 10 ซึ่งเป็นการกลับไปใช้เลข 1 และ 0 อีก เพียงแต่ค่าของ 1 เปลี่ยนไปเป็น 10 เท่าของตัวมันเอง เช่น 333 (สามร้อยสามสิบสาม) แม้จะใช้ตัวเลข 3 ทั้งหมด แต่ตำแหน่งของตัวเลขย่อมมีความหมายตามตำแหน่งของแต่ละหลักนั้น กล่าวคือ หลักหน่วยน้อยกว่าหลักสิบ 10 เท่า หลักสิบน้อยกว่าหลักร้อย 10 เท่า ตามลำดับ
4).เลขฐานสิบหก (Hexadecimal Number)
เลขฐานสิบหก มีความสัมพันธ์กับเลขฐานสอง คือ เลขฐานสองจำนวน 4 หลัก แทนด้วย
เลขฐานสิบหก 1 หลัก ดังนั้นเราจึงสามารถเขียนเลขฐานสอง 8 บิทแทนด้วยเลขฐานสิบหก 2 บิท การใช้เลขฐานสิบหกแทนเลขฐานสองทำให้จำนวนบิทสั้นลง
3.2 การเปลี่ยนฐานเลข (Base Number Conversion)
เนื่องจากตัวเลขในแต่ละฐานมี ค่าคงที่เฉพาะ ในแต่ละหลักของตัวเอง เช่นตัวเลข 100 มีค่าเท่ากับหนึ่งร้อยในระบบเลขฐานสิบ แต่ตัวเลข 100 ในระบบเลขฐานสอง (อ่านว่า หนึ่ง-ศูนย์-หนึ่ง) ซึ่งมีค่าเท่ากับ 4 เป็นต้น ดังนั้น จึงไม่สามารถนำค่าของเลขฐานใดๆไปคำนวณเปรียบเทียบกับเลขฐานอื่นได้โดยตรง
เมื่อต้องการคำนวณหรือเปรียบเทียบตัวเลข (ประมวลผล) จำเป็นต้องเปลี่ยนฐานเลขเหล่านั้นให้เป็นฐานเดียวกันก่อน การเปลี่ยนฐานเลขสามารถกระทำได้หลายวิธี ในหน่วยเรียนนี้จะใช้วิธีที่สะดวกที่สุดวิธีหนึ่ง ดังนี้
ก่อนเปลี่ยนฐานเลขใดๆจำเป็นต้องทราบค่าคงที่เฉพาะในแต่ละหลักของเลขฐานสองดังนี้
ตาราง แสดงค่าคงที่เฉพาะในแต่ละหลักของเลขฐานสอง
|
... |
128 |
64 |
32 |
16 |
8 |
4 |
2 |
1 |
จากตาราง พบว่าค่าคงที่เฉพาะ จะมีค่าเป็น 2 เท่า จากขวาไปซ้าย
3.2.1 การเปลี่ยนเลขฐานสอง เป็นเลขฐานสิบ
ให้นำค่าคงที่เฉพาะที่ตรงกับเลข 1 ของฐานสองมารวมกัน เช่นจำนวน (11010)2 ประกอบด้วยเลข "1" จำนวน 3 ตัว เมื่อนำค่าคงที่เฉพาะที่ตรงกับเลข 1 มารวมกัน ทำให้ได้จำนวนในฐานสิบเป็น 16+8+2 = 26 ดังนี้
ค่าคงที่เฉพาะ
|
.... |
128 |
64 |
32 |
16 |
8 |
4 |
2 |
1 |
|
|
|
|
|
1 |
1 |
0 |
1 |
0 |
เลขฐานสอง
(16+8+2)10 = (26)10
ตัวอย่างที่ 1 (10011)2 = (?)10
|
... |
128 |
64 |
32 |
16 |
8 |
4 |
2 |
1 |
|
|
|
|
|
1 |
0 |
0 |
1 |
1 |
(10011) 2 = (16+2+1) 10 = (19) 10
ตัวอย่างที่ 2 (1111) 2 = (?)10
|
... |
128 |
64 |
32 |
16 |
8 |
4 |
2 |
1 |
|
|
|
|
|
|
1 |
1 |
1 |
1 |
(1111) 2 = (8+4+2+1) 10 = (15) 10
ตัวอย่างที่ 3 (1000001)2 = (?)10
|
... |
128 |
64 |
32 |
16 |
8 |
4 |
2 |
1 |
|
|
|
1 |
0 |
0 |
0 |
0 |
0 |
1 |
(1000001) 2 = (64+1) 10 = (65) 10
นอกจากนี้การเปลี่ยนเลขฐานสองให้เป็นเลขฐานสิบยังสามารถทำได้โดย นำตัวเลขในแต่ละตำแหน่งคูณด้วยค่าประจำตำแหน่งแล้วนำมารวมกัน
ค่าประจำตำแหน่งของเลขฐานสองเริ่มตั้งแต่ 20,21,22,...
ตัวอย่างเช่น
(1011)2 = (1x23)+(0x22)+(1x21)+(1x20)
= (1x8)+(0x4)+(1x2)+(1x1)
= 8+0+2+1
= 11
3.2.2 การเปลี่ยนเลขฐานสิบ เป็นเลขฐานสอง
ให้พิจารณานำค่าคงที่เฉพาะหลักใดๆมารวมกัน เพื่อให้ได้ค่าเท่ากับเลขฐานสิบที่กำหนด จากนั้นเติมเลข "1" ณ ตำแหน่งที่นำตัวเลขมารวมนั้น เช่น (26) 10จะต้องใช้ค่าคงที่เฉพาะรวมกัน 3 หลัก (16+8+2) ดังนั้นจึงเติม "1" ณ ตำแหน่ง 16,8 และ 2 ตามลำดับ ส่วนตำแหน่งที่เหลือให้เติม "0"
ค่าคงที่เฉพาะ
|
.... |
128 |
64 |
32 |
16 |
8 |
4 |
2 |
1 |
|
|
|
|
|
1 |
1 |
0 |
1 |
0 |
เลขฐานสอง
ทำให้ได้เลขฐานสองเป็น (11010) 2
ตัวอย่างที่ 4 (5)10= (?)2
|
... |
128 |
64 |
32 |
16 |
8 |
4 |
2 |
1 |
|
|
|
|
|
|
|
1 |
0 |
1 |
(5) 10 = (4+1) 10 = (101) 2
ตัวอย่างที่ 5 (40)10= (?) 2
|
... |
128 |
64 |
32 |
16 |
8 |
4 |
2 |
1 |
|
|
|
|
1 |
0 |
1 |
0 |
0 |
0 |
(40) 10 = (32+8) 10 = (101000) 2
ตัวอย่างที่ 6 (197)10= (?)2
|
... |
128 |
64 |
32 |
16 |
8 |
4 |
2 |
1 |
|
|
1 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
(197) 10 = (128+64+4+1) 10= (11000101) 2
นอกจากนี้ยังสามารถเปลี่ยนค่าจากเลขฐานสิบให้เป็นฐานสอง โดยการหารเลขฐานสิบด้วยสองไปเรื่อยๆจะได้เศษจากการหาร คือ เลขฐานสอง ที่ต้องการ ตำแหน่งของเศษที่เกิดจากการหารก็คือกำลังของเลขฐานสอง นั่นคือเศษที่ได้จากการหารครั้งแรกจะคูณด้วย 20 เศษที่ได้จากการหารด้วย 2 ครั้งที่ 2 จะคูณด้วย 2 1เป็นต้น
ตัวอย่างเช่น
2 527
2 263 เศษ 1
2 131 เศษ 1
2 65 เศษ 1
2 32 เศษ 1
2 16 เศษ 0
2 8 เศษ 0
2 4 เศษ 0
- 2 2 เศษ 0
- 1 เศษ 0
ดังนั้น 527 = 10000011112
3.2.3 การเปลี่ยนระหว่างเลขฐานอื่น (ระหว่างฐานสอง ฐานแปด ฐานสิบ และฐานสิบหก)
ในที่นี้จะได้อธิบายถึงการเปลี่ยนฐานเลข ระหว่างเลขฐานสอง ฐานแปด ฐานสิบ และฐานสิบหก ซึ่งใช้ในระบบคอมพิวเตอร์ทั่วไป โดยมีหลักการเบื้องต้น 3 ประการ ดังนี้
- (a) เปลี่ยนเลขฐานจากโจทย์ ไปสู่เลขฐานสองก่อน (ใช้เลขฐานสองเป็นตัวเชื่อมไปสู่เลข ฐานอื่น)
- (b) เลขฐานแปด 1 หลัก ประกอบด้วยเลขฐานสอง 3 หลัก คือ (111) 2
|
1 1 1 |
(เนื่องจากเลขฐานแปด ต้องมีค่าไม่เกิน 7)
(c) เลขฐานสิบหก 1 หลัก ประกอบด้วยเลขฐานสอง 4 หลัก คือ (1111) 2
|
1 1 1 1 |
( (เนื่องจากเลขฐานสิบหก ต้องมีค่าไม่เกิน 15)
ตัวอย่างที่ 7 (75) 8 = (?)10
- ใช้หลักการ (a) เปลี่ยนเลขฐานแปด เป็นเลขฐานสอง ดังนี้
|
(?)2 |
|
(75) 8 |
|
(?)10 |
- แยก (75) 8 ออกเป็น 2 กลุ่มๆละ 3 หลัก ตามหลักการข้อ (b) โดยแยก 7 และ 5 ออกจากกัน ดังนี้
|
เลขฐานสอง |
|
1 0 1 |
|
1 1 1 |
( 7 5 ) 8
|
ค่าคงที่เฉพาะ |
4 2 1 4 2 1
ทำให้ได้จำนวนเลขในรูปของเลขฐานสองเท่ากับ (111101)2
- เปลี่ยนเลขฐานสองที่ได้ เป็นเลขฐานสิบดังนี้ (111101)2 = (?)10
|
... |
128 |
64 |
32 |
16 |
8 |
4 |
2 |
1 |
|
|
|
|
1 |
1 |
1 |
1 |
0 |
1 |
(111101) 2 = (32+16+8+4+1) 10 = (61) 10
\ (75)8 = (61) 10
ตัวอย่างที่ 8 (4C)16 = (?)10
- แยก (4C) 16 ออกเป็น 2 กลุ่มๆละ 4 หลัก ตามหลักการข้อ (c) ดังนี้
|
1 0 0 |
|
1 1 0 0 |
( 4 C ) 16
8 4 2 1 8 4 2 1 (C=8+4=12)
ทำให้ได้จำนวนเลขในรูปของเลขฐานสองเท่ากับ (1001100)2
- เปลี่ยนเลขฐานสองที่ได้ เป็นเลขฐานสิบดังนี้ (1001100)2 = (?)10
|
... |
128 |
64 |
32 |
16 |
8 |
4 |
2 |
1 |
|
|
|
1 |
0 |
0 |
1 |
1 |
0 |
0 |
(1001100) 2 = (64+8+4) 10 = (76) 10
\ (4C)16 = (76) 10
3.2.4 การแปลงเลขเศษส่วนในระบบเลขฐานสิบเป็นฐานสอง
การแปลงจำนวนเต็มใช้หลักการหารด้วย 2 (หรือการหาผลบวกของค่าประจำหลักก็ได้) สำหรับการแปลงเศษส่วนใช้วิธีการคูณด้วย 2 (คูณในระบบฐานสิบ) เพื่อหาค่าที่เป็นจำนวนเต็มหรือตัวทด (ตรงกันข้ามกับการแปลงจำนวนเต็มซึ่งใช้การหารและหาเศษที่เหลือ) ค่าตัวทดที่เกิดขึ้นในการคูณแต่ละครั้งให้เก็บไว้เป็นผลลัพธ์ นำส่วนที่เป็นเศษส่วนมาทำการคูณด้วยสองต่อไป จนได้ตัวเลขครบตามจำนวนที่ต้องการ ผู้ศึกษาจงสังเกตด้วยว่าการแปลงเลขเศษส่วนไปสู่ระบบฐานสองบางจำนวนไม่อาจแทนได้อย่างถูกต้อง ปรากฎการณ์นี้เป็นที่มาแห่งความผิดพลาดและคลาดเคลื่อนในการคำนวณเลขในระบบเครื่องคอมพิวเตอร์
ตัวอย่างที่ 9 จงแปลงจำนวน 159.356 ให้เป็นจำนวนในระบบเลขฐานสองกำหนดผลลัพธ์ไม่เกิน 8 หลัก
- จำนวนที่กำหนดให้มีสองส่วนคือ ส่วนที่เป็นจำนวนเต็มได้แก่ 159 แปลงเป็นจำนวนในระบบฐานสองได้ 159 = (10100001)2
- เศษส่วนคือ .356 ทำการแปลงไปสู่ระบบเลขฐานสองด้วยการคูณด้วย 2 เก็บผลลัพธ์จากตัวแรกไปยังตัวสุดท้าย ดังนี้
0.356x2 = 0.712 .712 ทดไว้ 0
0.712x2 = 1.424 .424 ทดไว้ 1
0.424x2 = 0.848 .848 ทดไว้ 0
0.848x2 = 1.696 .696 ทดไว้ 1
0.696x2 = 1.392 .392 ทดไว้ 1
0.392x2 = 0.784 .784 ทดไว้ 0
0.784x2 = 1.568 .568 ทดไว้ 1
........ ....... หยุด ....... .........
.356 = (0.0101101) 2
ผลลัพธ์คือ ตัวทดที่ได้จากการคูณตามลำดับตั้งแต่ครั้งที่ 1 ไปจนถึงครั้งสุดท้าย (ตามลูกศร) โดยให้เขียนจุดแสดงเศษข้างหน้า
159.356 » (10100001.01011) 2
ตัวอย่างนี้ แสดงเศษส่วนไว้เพียง 5 ตำแหน่ง ให้สังเกตว่าค่า ( .01011) 2 ไม่เรียกว่าเป็น
ค่าหลังจุดทศนิยม เพราะว่าจุดทศนิยมใช้สำหรับจำนวนในระบบเลขฐานสิบเท่านั้น เศษในระบบฐานสองข้างต้นนี้มีค่าไม่เท่ากับ .356 แต่เป็นเพียงค่าประมาณ(ที่น้อยกว่า)เท่านั้น
การแปลงจำนวนจากฐานหนึ่งไปยังอีกฐานหนึ่งเป็นต้นเหตุสำคัญของการเกิดค่าคลาดเคลื่อน (error) ในการคำนวณต่างๆซึ่งเป็นสิ่งที่ต้องระมัดระวังมาก
3.2.5 การแปลงเศษส่วนในระบบฐานสองเป็นฐานสิบ
วิธีที่ง่ายที่สุดได้แก่ การหาผลบวกของค่าประจำหลักของตัวเลขแต่ละหลักเข้าด้วยกัน แผนผังค่าประจำหลักของจำนวนในระบบฐานสองเมื่อเทียบกับระบบฐานสิบ เป็นดังนี้
|
|
2-1 |
2-2 |
2-3 |
2-4 |
2-5 |
.... |
จำนวนเต็ม ทวินิยม (Binary point)
|
|
.5 |
.25 |
.125 |
.0625 |
.03125 |
.... |
ตัวอย่างที่ 10 จงแปลงจำนวน (0.01011) 2 ให้เป็นจำนวนในระบบฐานสิบ
|
0 |
1 |
0 |
1 |
1 |
หลัก |
|
0.5 |
0.25 |
0.125 |
0.0625 |
0.03125 |
ค่าประจำหลัก |
\ 0.01011 มีค่าเท่ากับ 0x0.5 +1x0.25 +0x0.125 +1x0.0625 +1x0.03125
= 0.34375
3.2.6 การแปลงเศษส่วนในระบบฐานสิบเป็นฐานแปดและฐานสิบหก
ให้คูณเศษส่วนด้วยค่าของฐาน เก็บจำนวนเต็มหรือตัวทดที่เกิดขึ้นไว้เป็นผลลัพธ์ นำส่วนที่เหลือด้วยค่าของฐานต่อไป
ตัวอย่างที่ 11 แปลงจำนวน 0.356 ให้เป็นจำนวนในระบบฐานแปดและฐานสิบหก
- ก.แปลง 0.356 ให้เป็นจำนวนในระบบฐานแปด ให้คูณด้วย 8 เก็บตัวทด
0.356x8 = 2.848 .848 ทด 2
0.848x8 = 6.784 .784 ทด 6
0.784x8 = 6.272 .272 ทด 6
0.272x8 = 2.176 .176 ทด 2
0.176x8 = 1.408 .408 ทด 1
0.408x8 = 3.264 .264 ทด 3
...... หยุดทำ (ได้ค่าประมาณ) .......
0.356 » (0.266213)8
ข.แปลง 0.356 เป็นจำนวนในระบบฐานสิบหก ให้คูณด้วย 16 เก็บตัวทด
0.356x16 = 5.696 ทด 5
0.696x16 = 11.136 ทด 11 คือ B
0.136x16 = 2.176 ทด 2
0.176x16 = 2.816 ทด 2
0.816x16 = 13.056 ทด 13 คือ D
0.056x16 = 0.896 ทด 0
0.896x16 = 14.336 ทด 14 คือ E
....... หยุด ......
0.356 »(0.5B22D0E)16
การแปลงเลขเศษส่วนร
เป้นอะไรที่ดีมาก