NUMBER SYSTEM เลขฐานสิบ (Decimal Number) เลขฐานสอง (Binary Number) ภาษาคน VS ภาษาเครื่อง เลขฐานสิบ (Decimal Number) เลขฐานสอง (Binary Number) เลขฐานแปด (Octal Number) เลขฐานสิบหก (Hexadecimal Number)
เลขฐานสิบ 1 1 1 . 1 1 มีสัญญลักษณ์ที่แตกต่างกัน 10 ตัว คือ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 และ 9 ความหมายของหลักในเลขฐานสิบ 1 1 1 . 1 1 -2 1 x 10 2 1 x 10 1 x 10 1 -1 1 x 10 1 x 10
เลขฐานสอง มีสัญญลักษณ์ที่แตกต่างกัน 2 ตัว คือ 0 และ 1 ความหมายของหลักในเลขฐานสอง ( 1 1 1 . 1 1 ) 2 1 x 2 -2 1 x 2 2 1 1 x 2 1 x 2 -1 1 x 2
เลขฐานแปด ( 1 1 1 . 1 1 ) 8 มีสัญญลักษณ์ที่แตกต่างกัน 8 ตัว คือ 0 , 1 , 2 , 3 , 4 , 5 , 6 และ 7 ความหมายของหลักในเลขฐานแปด ( 1 1 1 . 1 1 ) 8 1 x 8 2 -2 1 x 8 1 x 8 1 1 x 8 -1 1 x 8
เลขฐานสิบหก ( 1 1 1 . 1 1 ) 16 มีสัญญลักษณ์ที่แตกต่างกัน 16 ตัว คือ มีสัญญลักษณ์ที่แตกต่างกัน 16 ตัว คือ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , A , B , C , D , E และ F ความหมายของหลักในเลขฐานสิบหก ( 1 1 1 . 1 1 ) 16 2 1 x 16 -2 1 x 16 -1 1 1 x 16 1 x 16 1 x 16
การเปลี่ยนฐาน (Base Number Conversion) ฐาน 10 เป็นฐาน 2 กรณีจำนวนเต็ม 1. หาร 2 เก็บเศษไว้จนสิ้นสุด 2. เศษที่คำนวณได้ครั้งแรกจะเป็นหลักแรก เศษที่คำนวณได้ครั้งที่ 2 จะเป็นหลักที่ 2 เศษที่คำนวณได้ครั้งที่ 3 จะเป็นหลักที่ 3…….. จนหมด
ตัวอย่างเช่น เพราะฉะนั้น 10 = ( 1 0 1 0 ) 10 = 5 เศษ 0 2 5 = 2 เศษ 1 2 10 = 5 เศษ 0 2 5 = 2 เศษ 1 2 2 = 1 เศษ 0 2 เพราะฉะนั้น 10 = ( 1 0 1 0 ) 2
กรณีเป็นทศนิยม 1. คูณด้วย 2 แล้วบันทึกจำนวนเต็มไว้เป็นหลักแรกของเลขหน้าสุด 2. เอาเฉพาะทศนิยมที่เหลือ คูณด้วย 2 ต่อไป และบันทึกจำนวนเต็มไว้เป็นหลักถัดไปของเลขหลังจุด 3. ทำไปจนได้จำนวนตำแหน่งหลังจุดที่พอใจ (ถ้าไม่ลงตัว)
ตัวอย่าง (แบบลงตัว) 0.25 x 2 = 0.50 จำนวนเต็ม 0 เพราะฉะนั้น 0.25 = (0.01) 2
ตัวอย่าง (แบบไม่ลงตัว) 0.1 x 2 = 0.2 จำนวนเศษ 0 0.2 x 2 = 0.4 จำนวนเศษ 0 0.4 x 2 = 0.8 จำนวนเศษ 0 0.8 x 2 = 1.6 จำนวนเศษ 1 0.6 x 2 = 1.2 จำนวนเศษ 1 เพราะฉะนั้น 0.1 = (0.000110…) 2
เน้น การเปลี่ยนฐาน 10 เป็นฐาน 2 การเปลี่ยนฐาน 2 เป็นฐาน 10 เน้น การเปลี่ยนฐาน 10 เป็นฐาน 2 การเปลี่ยนฐาน 2 เป็นฐาน 10 เน้น ทำไมต้องฐาน 10 ” 2 ” 8 ” 16
เลขฐานสอง เลขฐานสิบ เลขฐานสิบหก 1 1 1 1 1 1 1 1 1 1 1 1 0. 1 1 1 1 0. 1 1 1 1 0. 1 1 1 1
การแทนข้อมูล (Data Representation) 1. การแทนสัญญลักษณ์ ASCII 2. การแทนตัวเลข 2.1 การแทนจำนวนเต็ม 2.2 การแทนจำนวนจริง
การแทนจำนวนเต็ม S S ... …. …. …. 16 bit Sign bit (บิทเครื่องหมาย)
หลักการ 1’S Complement Complement การแทนเลขจำนวนเต็มบวก และเลขจำนวนเต็มลบ Complement 000 111 001 110 010 101 011 100
000 = + 0 001 = + 1 010 = + 2 Complement 011 = + 3 111 = - 0 110 = - 1 000 = + 0 001 = + 1 010 = + 2 011 = + 3 111 = - 0 110 = - 1 101 = - 2 100 = - 3 คอมพิวเตอร์บวกได้อย่างเดียว จึงนำหลักการของ Complement เข้ามาช่วย ทำให้คอมพิวเตอร์ลบได้
ฐาน 10 +1 +2 ฐาน 2 001 001 010 +1 +2 +3 001 010 011
ฐาน 10 +1 - 2 - 1 ฐาน 2 001 101 110 110 + -1 -2 -3 101 011 + 1 100
ทำไมต้อง 2 Complement เพราะมี 0 ซ้ำกัน + 3 = 011 - 1 = 111 + 2 = 010 + 3 = 011 - 1 = 111 + 2 = 010 - 2 = 110 - 3 = 101 + 1 = 001 0 = 000 - 4 = 100
+ 3 - 2 + 1 011 110 001 011 111 010 + 3 - 1 + 2
+ 3 + 2 + 5 011 010 101 Over flow 101 110 011 - 3 - 2 - 5 Under flow
ข้อ 1. จงหาค่าสูงสุดและต่ำสุด ของเลขฐาน 2 จำนวน 8 บิท ที่ใช้หลักการ 2’ complement ในการแทนเลขจำนวนเต็ม ข้อ 2. จงหาค่าสูงสุดและต่ำสุด ของเลขฐาน 2 จำนวน 32 บิท ที่ใช้หลักการ 2’ complement ในการแทนเลขจำนวนเต็ม
การแทนข้อมูลในคอมพิวเตอร์ 1. แทนข้อมูลเป็นอักขระ ASCII Code 2. แทนข้อมูลเป็นค่าตัวเลข 2.1 เลขจำนวนเต็ม (integer) 2.2 เลขจำนวนจริง (floating point)
ASCII Code A = 1 0 0 0 0 0 1 B = 1 0 0 0 0 1 0 Z = 1 0 1 1 0 1 0 a = 1 1 0 0 0 0 1 b = 1 1 0 0 0 1 0 Z = 1 1 1 1 0 1 0 0 = 0 1 1 0 0 0 0 1 = 0 1 1 0 0 0 1 2 = 0 1 1 0 0 1 0
เลขจำนวนเต็ม (integer) s - - - - - - - - - - - - - - - Sign bit 0 000 0000 0000 0000 = 0 1 000 0000 0000 0000 = -32,768 0 111 1111 1111 1111 = 32,767 1 000 0011 0011 0011 = ? 0 000 0011 0011 0011 = ?
เลขจำนวนจริง (Floating Point) s - - - - - - - - - - - - - - - Exponential mantissa Sign Exponention เป็น integer จึงใช้หลักของ 2 ’s Complement Mantissa คือ เลขฐานสองหลังจุด S คือ บิทเครื่องหมาย
0 111 1111 1111 1111 } + 0.1111 1111 -1 111 1111 เท่ากับ 0.1111 1111 x 10 เท่ากับ 0.1111 1111 x 2 -1 = 0.01111 1111
0 001 0111 1100 1010 (10111) เท่ากับ 0.1100 1010 x 10 23 เท่ากับ 0.1100 1010 x 2 เท่ากับ 1100 1010 0000 0000 0000 000 1001 0111 1100 1010 = ? 0101 0111 1100 1010 = ?
= ค่าจริง - ค่าที่คอมพิวเตอร์แทนได้ X 100 ค่าจริง % Error ร้อยละความคลาดเคลื่อน = ค่าจริง - ค่าที่คอมพิวเตอร์แทนได้ X 100 ค่าจริง
จงเก็บค่าต่อไปนี้ ในรูป floating point ขนาด 16 bits แล้วคำนวณความคลาดเคลื่อน 1. 12.34 2. -12.34 3. 0.000125 4. -0.625 5. -0.1234
จงเปรียบเทียบ % Error ในการแทนค่า 0.01 ขนาด 16 bits กับขนาด 32 bits