E N D
ระบบเลขในคอมพิวเตอร์ • คอมพิวเตอร์ทำงานด้วยกระแสไฟฟ้า ดังนั้นจึงมีการแทนที่สภาวะของกระแสไฟฟ้าได้ 2 สภาวะ คือ สภาวะที่มีกระแสไฟฟ้า และสภาวะที่ไม่มีกระแสไฟฟ้า และเพื่อให้โปรแกรมเมอร์สามารถสั่งการคอมพิวเตอร์ได้ จึงได้มีการสร้างระบบตัวเลขที่นำมาแทนสภาวะของกระแสไฟฟ้า โดยตัวเลข 0 จะแทนสภาวะไม่มีกระแสไฟฟ้า และเลข 1 แทนสภาวะมีกระแสไฟฟ้า สภาวะมีกระแสไฟฟ้า แทนด้วยตัวเลข 1 • สภาวะไม่มีกระแสไฟฟ้า แทนด้วยตัวเลข 0 • ระบบตัวเลขที่มีจำนวน 2 จำนวน (2 ค่า) เรียกว่าระบบเลขฐานสอง (Binary Number System)
ระบบจำนวนที่ใช้ในทางคอมพิวเตอร์ระบบจำนวนที่ใช้ในทางคอมพิวเตอร์
ระบบเลขฐานสอง (Binary) มีตัวเลข 0 และ 1 เช่น 0000 0001 0010 ตำแหน่งของหลักเรียกว่าบิต (Bit มาจาก Binary Digit) โดยบิตขวามือสุดเป็นบิต 0 ซึ่งเรียกว่า LSB (Least Significant Bit) ส่วนบิตซ้ายมือสุดเรียกว่า MSB (Most Significant Bit) Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 1 0 1 0 1 1 0 0 LSB MSB
ระบบเลขฐานสอง (Binary) ค่าของเลขฐานสองหาได้จากการรวมค่าของจำนวนเลขที่คิดตามตำแหน่งของหลักคล้ายกับเลขฐานสิบโดยค่าความแตกต่างของหลักมีค่าเพิ่มเป็น 2 เท่าหลักที่ต่ำกว่า( เลขฐานสิบต่างกัน 10 เท่า) จำนวนของเลขฐานสองหาได้ดังนี้ MSB LSB 0 1 0 0 0 1 1 1 128 64 32 16 8 4 2 1 ค่าที่ได้ = 64 +4+2+1 =71
ระบบเลขฐานสอง (Binary) เลขฐานสองที่มี n บิตจะมีค่า 2 ยกกำลัง n ค่า เช่นเลขฐานสอง ขนาด 2 บิตจะมี 4ค่า (0 - 3) เลขฐานสองขนาด 4 บิตจะมี 16 ค่า (0 -15) bit1 bit0 ค่า 0 0 0 0 1 1 1 0 2 1 1 3 เลขฐานสองขนาด 2 บิต
ระบบเลขฐานสอง (Binary) ตัวอย่าง หาค่าของเลขฐานสองต่อไปนี้ ก) 0 0 1 0 ข) 1001 ค) 00101010 ง) 10110011 ก) 0010 = 2 ข) 1001 = 8 +1 = 9 ค) 00101010 = 32 +8 + 2 = 42 ง) 10110011 = 128 +32+16+2+1 =179
การแปลงเลขฐานสิบเป็นเลขฐานสองการแปลงเลขฐานสิบเป็นเลขฐานสอง ใช้วิธีการหารด้วย 2 ไปเรื่อยจนกว่าจะหารไม่ได้ ผลลัพธ์คือเศษของการหารทุกตัว ตัวอย่างหาค่าของเลขฐานสองจากเลขต่อไปนี้ 6 ,11,97 2 ) 11 = 5 เศษ 1 2 ) 5 = 2 เศษ 1 2 ) 2 = 1 เศษ 0 2 ) 1 = 0 เศษ 1 2 ) 6 = 3 เศษ 0 2 ) 3 = 1 เศษ 1 2 ) 1 = 0 เศษ 1 6 = 0110 11 = 1011
การแปลงเลขฐานสิบเป็นเลขฐานสองการแปลงเลขฐานสิบเป็นเลขฐานสอง หาค่าของเลขฐานสองจากเลขฐานสิบค่า 97 2 ) 97 2 ) 48เศษ1 2 ) 24เศษ 0 2 ) 12เศษ 0 2 ) 6เศษ 0 2 ) 3เศษ0 2 ) 1เศษ1 0 เศษ 1 (bit 0) 97 = 01100001
หน่วยของเลขฐานสอง 1 Byte 4 Bit= 1 Nibble 1 0 1 1 0 0 1 1 8 Bit = 1Byte หรือ 1 Character Hi Nibble Low Nibble 2 Byte = 1 Word 10 =1024 Byte 1 KByte = 2 20 =1024 * 1024 Byte 1 Mbyte = 2 30 =1024 * 1024 * 1024 Byte 1 GByte = 2
การบวกเลขฐานสอง จะทำการบวกครั้งละบิตโดยเริ่มจากบิตต่ำซึ่งอยู่ทางขวามือก่อน และจะมีการทดไปบิตสูงเมื่อบวกกันแล้วได้ค่าเกิน 1 1100 + 0010 1001 + 0001 01011001 + 00111101 =9 =12 =1 =2 10010110 1110 1010 =10 =14
การบวกเลขฐานสอง หาผลบวกของเลขฐานสองต่อไปนี้ 01011111 + 00111101 00000111 11110011 + 00011111 100010010 10100011
การลบเลขฐานสอง การลบจะทำการลบครั้งละบิตโดยเริ่มจากบิตต่ำซึ่งอยู่ทางขวามือก่อน และจะมีการยืมจากบิตสูงเมื่อตัวตั้งน้อยกว่า ค่าที่ยืมมาจะมีค่าเป็น 2 01011111 - 00111101 1100 - 0111 0110 - 0001 00100010 0101 0101
การคูณเลขฐานสอง การคูณจะคูณคล้ายกับเลขฐานสิบ 01011111 * 00001110 0110 * 0011 0110 * 0001 01011111 01011111 01011111 0110 0110 10010 0110 10100110010
การหารเลขฐานสอง ใช้วิธีการตั้งหารดังตัวอย่าง 0 1 0 0 0 1 0 เศษ 1 11 ) 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1 0 0 1
ชนิดของเลขฐานสอง (Binary) ระบบเลขฐานสองแบ่งออกได้เป็น 3 ชนิด คือ • แบบไม่คิดเครื่องหมาย(Unsigned Binary) • รหัส BCD (Binary Code Decimal) • แบบคิดเครื่องหมาย (Signed Binary)
Unsigned Binary เป็นเลขที่ไม่คิดเครื่องหมายมีค่าเป็นจำนวนบวกอย่างเดียว โดยค่าของจำนวนเลขคิดตามตำแหน่งของหลักคล้ายกับเลขฐานสิบโดยค่าของจำนวนหาได้ดังนี้ MSB LSB 0 1 0 0 0 1 1 1 128 64 32 16 8 4 2 1 ค่าที่ได้ = 64 + 4 + 2 +1 = 71
Binary Code Decimal (BCD) เป็นการใช้รหัสของเลขฐานสอง 4 บิตแทนเลขฐานสิบ 1 หลัก ดังนั้นหากมีเลขฐานสอง 8 บิตจะแทนเลขฐานสิบได้ 2 หลักดังเช่น 0 1 0 0 0 1 1 1 8 4 2 1 8 4 2 1 4 7
Binary Code Decimal (BCD) ตัวอย่าง หาค่าของเลขฐานสองแบบ BCD ต่อไปนี้ ก) 00110100 ข) 01101001 ค) 100100100010 ง) 0100110111 ก) 00110100 = 34 ข) 01101001 = 69 ค) 100100100010 = 922 ง) 0100110111 = 137
Binary Code Decimal (BCD) ตัวอย่าง หาเลขฐานสองแบบ BCD จากเลขฐานสิบต่อไปนี้ ก)35 ข) 14 ค) 162 ง) 248 ก) 35 = 00110101 ข) 14 = 00010100 ค) 162 = 000101100010 ง) 248 = 001001001000
เลขฐานสองแบบคิดเครื่องหมาย(Signed Binary) เป็นการใช้งานเลขฐานสองแบบมีเครื่องหมายรวมอยู่ด้วย โดยกำหนดบิตซ้ายมือสุดคือบิตเครื่องหมาย หากบิตซ้ายมือสุดมีค่าเป็น 1 แสดงว่าเป็นค่าลบ เป็น 0 แสดงว่าเป็นค่าบวก ส่วนบิตที่เหลือเป็นค่าของจำนวน 0 1 0 0 1 0 1 0 มีค่าเป็น บวก บิทเครื่องหมาย 1 0 1 0 1 0 1 0 มีค่าเป็นลบ
เลขฐานสองแบบคิดเครื่องหมาย(Signed Binary) ตัวอย่างของเลขฐานสองแบบคิดเครื่องหมายขนาด 3 บิต (0) 000 000 001 010 011 100 101 110 111 0 1 2 3 -4 -3 -2 -1 001 111 (+1) บวก (- 1) 010 110 (+2) (- 2) ลบ 011 101 (+3) (- 3) 100 (- 4)
เลขฐานสองแบบคิดเครื่องหมาย(Signed Binary) ตัวอย่างของเลขฐานสองแบบคิดเครื่องหมายขนาด 4 บิต 0 0 0 0 = 0 0 0 0 1 = 1 0 0 1 0 = 2 0 0 1 1 = 3 0 1 0 0 = 4 0 1 0 1 = 5 0 1 1 0 = 6 0 1 1 1 = 7 1 0 0 0 = - 8 1 0 0 1 = - 7 1 0 1 0 = - 6 1 0 1 1 = - 5 1 1 0 0 = - 4 1 1 0 1 = - 3 1 1 1 0 = - 2 1 1 1 1 = - 1
เลขฐานสองแบบคิดเครื่องหมาย(Signed Binary) กรณีที่เป็นค่าบวกบิตซ้ายมือสุดเป็น 0 บิตที่เหลือจะคิดเป็นจำนวนได้เช่นเดียวกับเลขฐานสองแบบไม่คิดเครื่องหมายดังตัวอย่าง ก) 0010 = 2 ข) 0101 = 4+1 = 5 ค) 00101010 = 32 +8 + 2 = 42 ง) 01111111 = 64+32+16+8+4+2+1 =127
เลขฐานสองแบบคิดเครื่องหมาย(Signed Binary) กรณีที่เป็นค่าลบบิตซ้ายมือสุดเป็น 1 การหาเลขฐานสองของจำนวนที่เป็นลบใช้วิธีการนำเลขจำนวนบวกมาทำ 2’s Complement ซี่งมีขั้นตอนดังนี้ ตัวอย่างหาค่าของเลขฐานสองจำนวนต่อไปนี้ - 3 และ -9 ค่าของ 3 เท่ากับ 0011 1) นำเลขฐานสองมาทำ Complement โดยการเปลี่ยนบิตเป็นตรงข้าม 0011 เปลี่ยนเป็น 1100 2) บวกผลลัพธ์ในข้อ 1 ด้วย 1 จะได้ผลลัพธ์เป็นจำนวน 1100 +1 = 1101 ดังนั้น -3 = 1101
เลขฐานสองแบบคิดเครื่องหมาย(Signed Binary) หาค่าของเลขฐานสองของ -9 ค่าของ 9 เท่ากับ 00001001 1) นำเลขฐานสองมาทำ Complement โดยการเปลี่ยนบิตเป็นตรงข้าม 00001001 เปลี่ยนเป็น 11110110 2) บวกผลลัพธ์ในข้อ 1 ด้วย 1 จะได้ผลลัพธ์เป็นจำนวน 11110110 +1 = 11110111 ดังนั้น - 9 = 11110111
เลขฐานสองแบบคิดเครื่องหมาย(Signed Binary) ตัวอย่าง หาค่าของเลขฐานสองแบบคิดเครื่องหมายจากเลขฐานสิบต่อไปนี้ ก) - 7 ข) -24 ค) -100 ง) - 130 ก) 7 = 0111 ; 1000+1 = 1001 - 7 = 1001 ข) 24 = 00011000 ; 11100111+1 = 11101000 -24 = 11101000 ค) 100 = 01100100 ; 10011011+1 = 10011100 -100 = 10011100 ง) 130 = 010000010 ;101111101 +1 =101111110 -130 = 101111110
เลขฐานสองแบบคิดเครื่องหมาย(Signed Binary) ตัวอย่าง หาค่าของเลขฐานสองแบบคิดเครื่องหมายต่อไปนี้ ก) 0010 ข) 1001 ค) 00101010 ง) 10110011 ก) 0010 = 2 ข) 1001 = -7 ค) 00101010 = 32 +8 + 2 = 42 ง) 10110011 = - 77
เลขฐานสองแบบคิดเครื่องหมายเลขฐานสองแบบคิดเครื่องหมาย ตัวอย่าง หาค่าของเลขฐานสิบจากเลขฐานสองแบบคิดเครื่องหมายต่อไปนี้ ก) 11110010 ข) 11111111 ค) 11110000 ง) 10000001 ก) 11110010 = -14 ข) 11111111 = -1 ค) 11110000 = -16 ง) 10000001 = - 127
ระบบเลขฐานสิบหก (Hexa Decimal) ฐานสิบ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ฐานสอง 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 ฐานสิบหก 0 1 2 3 4 5 6 7 8 9 A B C D E F ประกอบด้วยตัวเลข 0-9 และตัวอักษร A ,B,C,D,E,F ซึ่งเกิดจากการรวมเลขฐานสองเป็นกลุ่มละ 4 บิต เพื่อให้ง่ายต่อการใช้งานและการจำ ความสัมพันธ์ของเลขฐานสิบหก ฐานสองและฐานสิบเป็นดังนี้
ระบบเลขฐานสิบหก (Hexa Decimal) การเขียนค่าของตัวเลข ฐานสิบหกจะใช้ ตัวอักษร H กำกับต่อจากค่าเพื่อแสดงว่าเป็นเลขฐานสิบหก ส่วนเลขฐานสองจะใช้ B กำกับ เลขฐานสิบไม่มีตัวอักษรกำกับดังเช่น 1010B เป็นเลขฐานสอง 1010H เป็นเลขฐานสิบหก 1010 เป็นเลขฐานสิบ
การแปลงเลขฐานสิบหกเป็นฐานสิบการแปลงเลขฐานสิบหกเป็นฐานสิบ ค่าของเลขฐานสิบหกจะมีค่าตามตำแหน่งของหลักโดยค่าจะเป็น 16 เท่าของหลักต่ำดังนี้ 1 2 4 256 16 1 ค่าของเลขฐานสิบหกหาได้จากการนำค่าในตำแหน่งคูณกับค่าประจำหลัก ดังนั้นค่าของ 124H = 1 x 256 +2 x 16 + 4 = 296
การแปลงเลขฐานสิบหกเป็นฐานสิบการแปลงเลขฐานสิบหกเป็นฐานสิบ ตัวอย่าง หาค่าของเลขฐานสิบจากเลขฐานสิบหกต่อไปนี้ก) 11H ข) 1CH ค) A2H ก) 11H = 1*16 + 1*1 = 17 ข) 1CH = 1*16 + 12*1 = 28 ค) A2H = 10*16 + 2*1 = 162
การแปลงเลขฐานสองเป็นฐานสิบหกการแปลงเลขฐานสองเป็นฐานสิบหก ตัวอย่าง หาค่าของเลขฐานสิบหกจากเลขฐานสองต่อไปนี้ก) 01101011B ข) 11111110Bค) 10101010B ก) 01101011B = 6BH ข) 11111110B = FEH ค) 10101010B = AAH
การแปลงเลขฐานสิบเป็นฐานสิบหกการแปลงเลขฐานสิบเป็นฐานสิบหก ใช้วิธีการหารด้วย 16 ไปเรื่อยจนกว่าจะหารไม่ได้ ตัวอย่างหาค่าของเลขฐานสิบหกจากเลขฐานสิบต่อไปนี้ 22 ,48,138 16) 22 1 เศษ 6 16) 48 3 เศษ 0 16) 138 8 เศษ 10 22 = 16H 48 = 30H 138 = 8AH
การบวกเลขฐานสิบหก ทำการบวกเริ่มต้นจากหลักขวามือก่อนและจะทำการทดไปยังหลักสูงเมื่อมีค่าเกิน 15 ตัวอย่าง หาค่าผลบวกของเลขฐานสิบหกต่อไปนี้ 1FH + 1BH 12H + 19H 48H + 19H 61H 3AH 2BH
การลบเลขฐานสิบหก ทำการลบจากหลักขวามือก่อนและจะทำการยืมเมื่อตัวตั้งน้อยกว่าตัวลบการยืมจะยืมจากหลักสูงมา 1 ซึ่งจะกลายเป็น 16 ในหลักที่กำลังลบกัน ตัวอย่าง หาค่าของการลบเลขฐานสิบหกต่อไปนี้ 1FH - 19H 42H - 15H FAH - 1BH 06H 2DH DFH
เลขฐานสิบหก คำถาม หาค่าของเลขฐานสิบจากเลขฐานสิบหกต่อไปนี้ 1) A0H 2) 18H 3) 7FH 4) FFH 5) FFFFH 6) 03FFH 7) 1000H