You are on page 1of 39

วิทยาการคอมพิวเตอร์เบื้องต้น

01418111 INTRODUCTION TO COMPUTER SCIENCE

ACTING SUB LT. CHAICHANA KULWORATIT, PH.D.


CHAPTER 4
ระบบจำนวน
NUMBER SYSTEMS
จำนวน (Number)
• จำนวนเป็นแบบบล็อกที่สร้างพื้นฐานทางคณิตศาสตร์ จำนวนบางจำนวนมีสมบัติ
ร่วมกัน และสามารถจัดเข้าเป็นกลุ่มในเซต
เลขโดด (Digit) เลขโดด 10 ตัว ได้แก่ 0, 1, 2, 3, 4, 5, 6, 7, 8 และ 9

ระบบจำนวน (Number system) วิธีการผสมเลขโดด 10 ตัว (ฐานสิบ)

จำนวนเต็ม (Integers) จำนวนเต็มบวก จำนวนเต็มลบ ศูนย์ เช่น -4, 0, 3

จำนวนธรรมชาติ (Natural or Counting numbers)


หรือจำนวนนับ จำนวนเต็มบวกที่เราใช้สำหรับการนับ ได้แก่ 1, 2, 3, 4, ...
จำนวน (Number)
จำนวนถัดไป (Consecutive numbers)
จำนวนซึ่งอยู่ถัดไปของจำนวนอื่นแต่ละจำนวน เช่น 5, 6, 7, 8 , ...
ค่าประจำหลัก (Place value)
ค่าของเลขโดดที่สัมพันธ์กับตำแหน่งของค่าประจำหลัก ตัวอย่างเช่น 12 , 205 , 2600
ทุกจำนวนมีเลขโดด 2 แต่ค่าประจำหลักของ 2 แตกต่างกัน
จำนวน 12 2 มีค่า สอง
จำนวน 205 2 มีค่า สองร้อย
จำนวน 2600 2 มีคา่ สองพัน
จำนวน (Number)
จำนวนบวก (Positive number)
จำนวนใดที่อยู่เหนือศูนย์ เช่น +1 , +6.5 , +328
จำนวนลบ (Negative number)
จำนวนใดที่น้อยกว่าศูนย์ -3 , -21.8 , -40
จำนวนระบุทิศทาง (Directed numbers)
จำนวนบวกและจำนวนลบทั้งหมดแสดงได้ด้วยเส้นจำนวน
(Number line) ที่เรียกว่าจำนวนระบุทิศทาง เพราะว่ามี
ความสำคัญในการที่จะนำทิศทางมาใช้โดยการวัดจากศูนย์
จำนวน (Number)
จำนวนคู่ (Even number)
จำนวนเต็มใด ๆ ที่หารด้วย 2 แล้วไม่เหลือเศษ เช่น -2, 2
จำนวนคี่ (Odd number)
จำนวนเต็มใดๆ ที่หารด้วย 2 แล้วเหลือเศษ เช่น -5, 5
จำนวนเฉพาะ (Prime number)
จำนวนเต็มบวกที่มากกว่า 1 และมีตัวหารที่เป็นบวกอยู่ 2 ตัว คือ 1 กับตัวมันเอง
จำนวนประกอบ (Composite number)
จำนวนใด ๆ ที่ไม่ใช่จำนวนเฉพาะ เช่น 6, 9, 20, 27 เป็นต้น
จำนวน (Number)
จำนวนกำลังสอง (Square number) ยกกำลังสองของจำนวนนัน้

จำนวนกำลังสาม (Cube number) ยกกำลังสามของจำนวนนั้น

จำนวนสามเหลี่ยม (Triangular number) จำนวนบวกซึ่งมีผลบวกของ


จำนวนเต็มเรียงต่อกันไป
1 = 1
1+2 = 3
1+2+3 = 6
1+2+3+4 = 10
จำนวน (Number)
พาลินโดรม (Palindrome)
จำนวนจำนวนหนึ่ง ซึ่งอ่านจากทางขวาไปทางซ้าย มีค่าเช่นเดียวกันกับการอ่าน
จากทางซ้ายไปทางขวา เช่น 23432, 121

จำนวนแพนดิจิท (Pandigital number)


จำนวนจำนวนหนึ่ง ซึ่งประกอบด้วยเลขโดด 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
เพียงหนึ่งครั้งเท่านั้น เช่น 2918653470

จำนวนจริง (Real numbers) เซตของจำนวนตรรกยะ และจำนวนอตรรกยะ


จำนวน (Number)
จำนวนตรรกยะ (Rational number)
• จำนวนใด ๆ ที่สามารถเขียนให้อยู่ในรูปเศษส่วน เมื่อตัวเศษและตัวส่วนเป็นจำนวนเต็ม
ซึ่งเป็นทั้งจำนวนบวกและจำนวนลบ
• อาจเป็นทศนิยม เช่น 50.856 และทศนิยมไม่รู้จบ เช่น 0.333...

จำนวนอตรรกยะ (Irrational number)


• จำนวนที่ไม่ใช่จำนวนตรรกยะ จึงไม่สามารถเขียนเป็นเศษส่วนหรือทศนิยม
• จำนวนอตรรกยะจะมีจำนวนของตำแหน่งทศนิยมไม่จำกัด พาย (𝝅)
เป็นจำนวนอตรรกยะ ได้แก่ 3.141592653...
ระบบจำนวน
จำนวนเชิงซ้อน

จำนวนจริง จำนวนจินตภาพ

จำนวนตรรกยะ จำนวนอตรรกยะ

จำนวนเต็ม จำนวนตรรกยะที่ไม่ใช่จำนวนเต็ม

จำนวนลบ จำนวนเต็มศูนย์ จำนวนบวกหรือจำนวนนับ


ระบบเลขฐาน

• ระบบเลขฐานช่วยในเรื่องการจัดการระบบดิจิตอล หรือระบบอิเล็กทรอนิกส์
หรือแทนรหัสข้อมูลในระบบ BCD, EBCDIC, ASCII
• มนุษย์ใช้ระบบเลขฐาน 10
• คอมพิวเตอร์ใช้ระบบเลขฐาน 2, 8, 16 และจะต้องนำระบบเลขฐานมาคำนวณผล
ด้วยตัวดำเนินการทางคณิตศาสตร์
• ในการประมวลผลข้อมูลด้วยคอมพิวเตอร์ ข้อมูลจะถูกนำเข้าเป็นลำดับของบิต (Bit)
หรือเลขฐาน 2 ก่อน
ระบบเลขฐาน

• Computer Processing ทำโดย Transistors ซึ่งกำหนดสถานะของ Switches


คือ on (1) และ off (0)

OFF OFF OFF OFF OFF


ON ON ON

1 1 0 0 1 0 0 0
(1 Bit) (1 Bit) (1 Bit) (1 Bit) (1 Bit) (1 Bit) (1 Bit) (1 Bit)
ระบบเลขฐาน

กระแสไฟปิด (กำลังดันไฟต่า) กระแสไฟปิด (กำลังดันไฟต่า)


OFF
ON

0 1
(1 Bit) (1 Bit)

0 1
ระบบเลขฐาน
• ในระบบการทำงานของคอมพิวเตอร์ นอกจากจะใช้เลขฐาน 2 ในการประมวลผล
• แล้วยังได้มีการใช้เลขฐานอื่น ๆ ร่วมด้วย อาทิ เลขฐาน 8 และ ฐาน 16
ระบบเลขฐาน ชื่อเลขฐานภาษาอังกฤษ ตัวเลขที่ใช้ในระบบเลขฐาน
2 Binary 01
3 Ternary 012
4 Quaternary 0123
5 Quinary 01234
6 Senary 012345
7 Septernary 0123456
ระบบเลขฐาน ชื่อเลขฐานภาษาอังกฤษ ตัวเลขที่ใช้ในระบบเลขฐาน
8 Octalnary 01234567
9 Nonary 012345678
10 Denary 0123456789
11 Undenary 0123456789A
12 Duodenary 0123456789AB
13 Tredenary 0123456789ABC
14 Quatuordenary 0123456789ABCD
15 Quidenary 0123456789ABCDE
16 Hexadenary 0123456789ABCDEF
ระบบเลขฐาน

• ระบบเลขฐานที่นิยมมี 4 เลขฐาน ได้แก่

Decimal Number
คือ ระบบเลขฐาน 10 ซึ่งใช้เป็นมาตรฐานทั่วไป (0-9)
เช่น 1, 3, 6798, 234, 100.12

Binary Number
คือ ระบบเลขฐาน 2 ซึ่งใช้ในการประมวลผลในเครื่องคอมพิวเตอร์ (0, 1)
เช่น 1011011011, 111011100001
ระบบเลขฐาน

Octal Number
คือ ระบบเลขฐาน 8 ซึ่งใช้ในการศึกษาวงจรดิจิตอล (0-7)
เช่น 234.75, 1202311, 11011, 765644

Hexadecimal Number
คือ ระบบเลขฐาน 16 ซึ่งใช้ในระบบวงจรดิจิตอล
เป็นการกำหนดรูปแบบคำสั่งแทนการใช้เลขฐาน 2 และ 8 (0-F)
เช่น E22AF, 1567AE, C4F
ระบบเลขฐาน
• ตารางเปรียบเทียบเลขฐาน 10, 2, 8, 16
10 2 8 16 10 2 8 16
0 0 0 0 11 1011 13 B
1 1 1 1 12 1100 14 C
2 10 2 2 13 1101 15 D
3 11 3 3 14 1110 16 E
4 100 4 4 15 1111 17 F
5 101 5 5 16 10000 20 10
6 110 6 6 17 10001 21 11
7 111 7 7 18 10010 22 12
8 1000 10 8 19 10011 23 13
9 1001 11 9 20 10100 24 14
10 1010 12 A 30 11110 36 1E
ระบบเลขฐาน

• ระบบเลขฐานทุกเลขฐานจะมีค่าประจำหลัก เพื่อบ่งบอกระดับของตัวเลขนั้น ๆ เช่น


ในเลขฐาน 10 มีค่าประจำหลัก ได้แก่ หลักหน่วย (100) หลักสิบ (101) หลักร้อย
(102) หลักพัน (103) ... หลัก n (10n-1)
• ค่าประจำหลักมากสุด จะอยู่ด้านซ้ายสุดของชุดตัวเลข เรียกว่า MSD (Most
Significant Digit)
• ค่าประจำหลักน้อยสุด จะอยู่ด้านขวาสุดของชุดตัวเลข เรียกว่า LSD (Least
Significant Digit)
ระบบเลขฐาน

• (7249)10 มาจาก (7x103) + (2x102) + (4x101) + (9x100)


ซึ่งเท่ากับ (7x1000) + (2x100) + (4x10) + (9x1)

ดังนั้น ค่าประจำหลักของเลขโดด 7 คือ 103 หรือ 1000


ค่าประจำหลักของเลขโดด 2 คือ 102 หรือ 100
ค่าประจำหลักของเลขโดด 4 คือ 101 หรือ 10
ค่าประจำหลักของเลขโดด 9 คือ 100 หรือ 1
ระบบเลขฐาน
• ในทำนองเดียวกัน ค่าประจำหลักของระบบเลขฐานอื่น ๆ ก็มีการเรียงลำดับจากมากไปน้อย
จากด้านซ้ายไปขวา เช่นเดียวกับเลขฐาน 10
• ชุดตัวเลข (100110)2 ซึ่งเป็นเลขฐาน 2 สามารถระบุค่าประจำหลัก ได้ดังนี้
• (100110)2 มาจาก (1x25) + (0x24) + (0x23) + (1x22) + (1x21) + (0x20)
ซึ่งเท่ากับ (1x32) + (0x16) + (0x8) + (1x4) + (1x2) + (0x1)
ดังนั้น ค่าประจำหลักโดด 1 คือ 25 หรือ 32
ค่าประจำหลักโดด 0 คือ 24 หรือ 16
ค่าประจำหลักโดด 0 คือ 23 หรือ 8
ค่าประจำหลักโดด 1 คือ 22 หรือ 4
ค่าประจำหลักโดด 1 คือ 21 หรือ 2
ค่าประจำหลักโดด 0 คือ 20 หรือ 0
การแปลงเลขฐาน (จำนวนเต็ม) วิธีหารสั้น
ฐาน 10 -> ฐาน 2 ฐาน 10 -> ฐาน 8 ฐาน 10 -> ฐาน 16
(305)10 = (100110001)2 (305)10 = (461)8 (305)10 = (131)16
2 305 8 305 16 3 0 5
2 152 = 1 8 38 = 1 16 1 9 = 1
2 76 = 0 8 4 = 6 16 1 = 3
2 38 = 0 0 = 4 0 = 1
2 19 = 0
2 9 = 1
2 4 = 1
2 2 = 0
2 1 = 0
0 = 1
การแปลงเลขฐาน (จำนวนทศนิยม) วิธีหารสั้น
ฐาน 10 -> ฐาน 2 ฐาน 10 -> ฐาน 8 ฐาน 10 -> ฐาน 16
(0.6875)10 = (0.1011)2 (0.65625)10 = (0.52)8 (0.6875)10 = (0.B)2
0.6875x 0.65625 x 0.6875 x
2 8 16
1.3750 x 5.25000x 4.1250 +
2 8 6.8750
0.7500x 2.00000 11.0000
2
1.5000x
2
1.0000
การแปลงเลขฐาน (จำนวนเต็ม) วิธีเทียบค่าประจำหลัก
ฐาน 10 -> ฐาน 2 (305)10 = (100110001)2
28 27 26 25 24 23 22 21 20
ค่าประจำหลัก

2x2x2 2x2x2 2x2x2


2x2x2 2x2x2
x2x2x x2x2x x2x2x 2x2x2 2x2 2 1
x2x2 x2
2x2x2 2x2 2
256 128 64 32 16 8 4 2 1
1 0 0 1 1 0 0 0 1
305 - 49 - 17 - 1-
256 32 16 1
49 17 1 0
การแปลงเลขฐาน (จำนวนเต็ม) วิธีเทียบค่าประจำหลัก
ฐาน 10 -> ฐาน 8 (4005)10 = (7645)8
84 83 82 81 80
ค่าประจำหลัก

8x8x8x8 8x8x8 8x8 8 1


4096 512 64 8 1
0 7 6 4 5
512 x 7 = 3584 64 x 6 = 384 8 x 4 = 32 1x5=5
4005 - 421 - 37 - 5-
3584 384 32 5
421 37 5 0
การแปลงเลขฐาน (จำนวนเต็ม) วิธีเทียบค่าประจำหลัก
ฐาน 10 -> ฐาน 16 (4005)10 = (FA5)16
163 162 161 160
ค่าประจำหลัก

16x16x16 16x16 16 1
4096 256 16 1
0 15 -> F 10 -> A 5
256 x 15 = 3840 16 x 10 = 160 1x5=5
4005 - 165 - 5-
3840 160 5
165 5 0
การแปลงเลขฐาน
ฐานใด ๆ -> ฐาน 10
(bm-1xBm-1) + (bm-1xBm-1) + ... + (b2xB2) + (b1xB1) + (b0xB0) + (b-1xB-1) + ...
(10101.1011)2 = (?)10
(14 03 12 01 10 . -11 -20 -31 -41)2

(1x24) + (0x23) + (1x22) + (0x21) + (1x20) + (1x2-1) + (0x2-2) + (1x2-3) + (1x2-4)


= (1x16) + (0x8) + (1x4) + (0x2) + (1x1) + (1x0.5) + (0x0.25) + (1x0.125) + (1x0.0625)
= 16 + 4 + 1 + 0.5 + 0.125 + 0.0625 = 21.6875
การแปลงเลขฐาน
ฐานใด ๆ -> ฐาน 10

(10011)2 = (1x24) + (0x23) + (0x22) + (1x21) + (1x20)


= (1x16) + (1x2) + (1x1) = 16 + 2 + 1 = 19

(3610)8 = (3x83) + (6x82) + (1x81) + (0x80)


= (3x512) + (6x64) + (1x8) = 1,536 + 384 + 8 = 1,928

(21A)16 = (2x162) + (1x161) + (10x160)


= (2x256) + (1x16) + (10x1) = 512 + 16 + 10 = 538
การแปลงเลขฐาน
ฐาน 2 -> ฐาน 8
1 4 2 1 4 2 1 4 2 1 4 2 1
( 1 1 0 0 1 1 1 0 1 1 0 1 1 )2
1 4 7 3 3
ดังนั้น (1100111011011)2 = (14733)8

2 1 4 2 1 4 2 1 4 2 1 4
( 1 0 0 1 0 1 0 1 . 1 0 1 1 )2
2 2 5 5 4
ดังนั้น (10010101.1011)2 = (225.54)8
การแปลงเลขฐาน
ฐาน 8 -> ฐาน 2

1 4 7 3 3
1 1 0 0 1 1 1 0 1 1 0 1 1
ดังนั้น (14733)8 = (1100111011011)2

2 2 5 . 5 4
1 0 0 1 0 1 0 1 1 0 1 1
ดังนั้น (225.54)8 = (10010101.1011)2
การแปลงเลขฐาน
ฐาน 2 -> ฐาน 16
1 8 4 2 1 8 4 2 1 8 4 2 1
( 1 1 0 0 1 1 1 0 1 1 0 1 1 )2
1 9 D B
ดังนั้น (1100111011011)2 = (19DB)16

8 4 2 1 8 4 2 1 8 4 2 1
( 1 0 0 1 0 1 0 1 . 1 0 1 1 )2
9 5 B
ดังนั้น (10010101.1011)2 = (95.B)16
การแปลงเลขฐาน
ฐาน 16 -> ฐาน 2

1 A D B
1 1 0 1 0 1 1 0 1 1 0 1 1
ดังนั้น (1ADB)16 = (1101011011011)2

E A . 8 F
1 1 1 0 1 0 1 0 1 0 0 0 1 1 1 1
ดังนั้น (EA.8F)16 = (1110101010001111)2
การแปลงเลขฐาน
ฐาน 8 -> ฐาน 16

1 4 7 3 3 8
1 1 0 0 1 1 1 0 1 1 0 1 1
1 8 4 2 1 8 4 2 1 8 4 2 1 2
1 1 0 0 1 1 1 0 1 1 0 1 1
1 9 D B 16
ดังนั้น (14733)8 = (19DB)16
การแปลงเลขฐาน
ฐาน 16 -> ฐาน 8

1 9 D B 16
1 1 0 0 1 1 1 0 1 1 0 1 1
2
1 1 0 0 1 1 1 0 1 1 0 1 1
1 4 7 3 3 8
ดังนั้น (19DB)16 = (14733)8
การคำนวณเลขฐาน ADDITION
การบวกเลขฐาน ADDITION
11 101 1 111 1001
2374 + 2 3 7 48 + 3 F C 516+ 1 1 0 1 2+
6276 6 2 7 68 7 F A E16 1 0 0 12
8650 1 0 6 7 28 B F 7 316 1 0 1 1 02

การบวกในระบบคอมพิวเตอร์ BINARY NUMBERS


1 1 1 1
1 0 0 1 + -7 + 1 1 0 0 + -4 + 0 1 0 1 + 5 + 1 0 0 1 + -7 +
0101 5 0100 4 0100 4 1 0 1 0 -6
1 1 1 0 -2 10000 0 1 0 0 1 Overflow 1 0 0 1 1 Overflow
การคำนวณเลขฐาน SUBTRACTION
การลบเลขฐาน SUBTRACTION
10 10 8 8 8 16
56 406 B
8673 - 5 1 7 2 8- 7 F C 516-
6276 4 2 7 68 6 F A E16
2397 0 6 7 48 1 0 1 716

COMPLEMENT สำหรับการลบเลขฐาน 2 2’s Complement 11011100


1’s Complement
1’s Complement 11011100 0 0 1 0 0 0 1 1+
เปลี่ยน Bit 0 1 1
00100011 00100100
การคำนวณเลขฐาน SUBTRACTION
การลบเลขฐาน 2 โดยใช้ 1’s Complement
1. หากจำนวนของบิตของตัวตั้งและตัวลบไม่เท่ากัน ให้เพิ่มบิต 0 ด้านหน้าของตัวที่น้อยกว่า
เพื่อให้จำนวนบิตเท่ากัน
2. หา 1’s Complement ของตัวลบ แล้วนำมาบวกกับตัวตั้ง
3. ถ้าผลบวกมีตัวทดเกินบิตที่มีอยู่ ให้นำตัวทดนั้นมาบวกกับผลจากข้อที่ 1 จะได้ค่าบวก
4. ถ้าผลบวกจากข้อ 1 ไม่มีตัวทด ให้นำผลบวกจากข้อที่ 1 มาหา 1’s Complement ซึ่งผลที่ได้ให้มีค่าเป็นลบ
110111 –100101 110111 10111 -110110 101 1 1+
+
1’s Complement 011010 1’s Complement 001001
011010 001001
1 010001+ 100000
1 1’s Complement
01 1 1 1 1
010010 -1 1 1 1 1
การคำนวณเลขฐาน SUBTRACTION
การลบเลขฐาน 2 โดยใช้ 2’s Complement
1. หากจำนวนของบิตของตัวตั้งและตัวลบไม่เท่ากัน ให้เพิ่มบิต 0 ด้านหน้าของตัวที่น้อยกว่า
เพื่อให้จำนวนบิตเท่ากัน
2. หา 2’s Complement ของตัวลบ แล้วนำมาบวกกับตัวตั้ง
3. ถ้าผลบวกมีบิตเกินมา ให้ตัดบิตเกินทิ้ง ซึ่งผลที่ได้จะมีค่าเป็นบวก
4. ถ้าผลบวกไม่มีตัวทดเกินมา ให้นำผลบวกจากข้อที่ 1 มาหา 2’s Complement ซึ่งผลที่ได้ให้มีค่าเป็นลบ
10111 -110110 101 1 1+
110111 –100101 2’s Complement 001010
2’s Complement
110111 001010
+ 100001
011011 011011
2’s Complement
1 010010 01 1 1 1 1
-1 1 1 1 1
การคำนวณเลขฐาน MULTIPLICATION & DIVISION
การคูณเลขฐาน การหารเลขฐาน
110101 x 101 = ? 100001001 / 101 = ?
1 10101
110101 x 101 100001001
101 101
110101 110
0000 00 101
110101 110
1 0000 1 001 101
101
101
0

You might also like