Number System[1] http://krupoh.wordpress.com เลขฐาน & ASCII CODE Number System[1] http://krupoh.wordpress.com
เนื้อหา การแทนข้อมูลในคอมพิวเตอร์ ระบบเลขจำนวน (Number system) เลขฐานสอง, สิบ, แปด และ สิบหก การแปลงเลขฐาน การแปลงเลขฐานอื่นๆ เป็นเลขฐานสิบ การแปลงเลขฐานสิบเป็นเลขฐานอื่นๆ มาตรฐานของการแทนข้อมูล
การแทนข้อมูลในคอมพิวเตอร์ ข้อมูลที่เก็บในคอมพิวเตอร์ มีหลายชนิด ตัวอักษร, ตัวเลข, ข้อมูลเสียง, รูปภาพ ฯลฯ คอมพิวเตอร์จะไม่เข้าใจถึงข้อมูลข้างต้นเหล่านั้น เข้าใจแค่ 2 สถานะ คือ 0 กับ 1 1 = มีกระแสไฟฟ้าเปิดหรือการเกิดสภาพแม่เหล็ก 0 = ไม่มีกระแสไฟฟ้าหรือสภาพแม่เหล็ก 0 และ 1 แต่ละตัวจะเรียกว่า บิต (Bit) – Binary Digit
ในคอมพิวเตอร์ ข้อมูลจะถูกเปลี่ยนให้อยู่ในรูปสวิตซ์ ซึ่งมีได้ 2 สถานะ คือ ปิด (off) และ เปิด (on) นิยมใช้ เลขฐาน 2 (Binary Number System) แทนข้อมูลที่เก็บไว้ ซึ่งมีอยู่ 2 ตัว คือ 0 (off) และ 1 (on) และในบางครั้งสามารถเขียนแทนด้วย เลขฐาน 8 (Octal Number System) หรือ เลขฐาน 16 (Hexadecimal Number System) ได้
ระบบเลขจำนวน (Number system) ในชีวิตประจำวัน เราใช้ ระบบเลขฐาน 10 (Decimal Number System) ซึ่งมีตัวเลขที่ใช้อยู่ 10 ตัว คือ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 8310 -- 83 ในระบบเลขฐาน 10 -- มีความหมายคือ (ผลรวมของเลขแต่ละหลักคูณด้วย 10 ยกกำลังด้วยตำแหน่ง (0, 1, 2, 3, ...) ของเลขหลักนั้นๆ) 83 = (8 x 101) + (3 x 100)
ระบบเลขฐานสอง (Binary Number System) ใช้เลข 0 และ 1 ในการแทนค่าข้อมูลเท่านั้น ระบบเลขฐานแปด (Octal Number System) 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 ระบบเลขฐานสิบ (Decimal Number System) 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ระบบเลขฐานสิบหก (Hexadecimal Number System) 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 และ A, B, C, D, E, F แทน 10, 11, 12, 13, 14, 15
ตัวเลข/สัญลักษณ์ที่ใช้ 0,1 0,1,2 0,1,2,3 0,1,2,3,4 0,1,2,3,4,5 ชื่อ ฐาน ตัวเลข/สัญลักษณ์ที่ใช้ Binary 2 0,1 Ternary 3 0,1,2 Quarternally 4 0,1,2,3 Quinary 5 0,1,2,3,4 Senary 6 0,1,2,3,4,5 Septenary 7 0,1,2,3,4,5,6 Octenary (octal) 8 0,1,2,3,4,5,6,7 Denary (decimal) 10 0,1,2,3,4,5,6,7,8,9 Hexadenary 16 0,1 ,2,3,4,5,6,7,8,9, A,B,C,D,E,F (hexadecimal)
ค่าประจำหลักเลขฐาน เลขฐานสิบ 743010 = (7x103) + (4x102) + (3x101) + (0x100) 0.3410 = (3x10-1) + (4x10-2) หน้าจุดทศนิยม หลังจุดทศนิยม หลัก พัน ร้อย สิบ หน่วย เลขที่ตำแหน่ง 3 2 1 -1 -2 ค่าของตำแหน่ง 103 102 101 100 10-1 10-2 ปริมาณค่า 1000 10 0.1 0.01
เลขฐานสอง 10102 = (1x23) + (0x22) + (1x21) + (0x20) หน้าจุดทศนิยม หลังจุดทศนิยม หลัก พัน ร้อย สิบ หน่วย เลขที่ตำแหน่ง 3 2 1 -1 -2 ค่าของตำแหน่ง 23 22 21 20 2-1 2-2 ปริมาณค่า 8 4 0.5 0.25
เลขฐานแปด 74308 = (7x83) + (4x82) + (3x81) + (0x80) หน้าจุดทศนิยม หลังจุดทศนิยม หลัก พัน ร้อย สิบ หน่วย เลขที่ตำแหน่ง 3 2 1 -1 -2 ค่าของตำแหน่ง 83 82 81 80 8-1 8-2 ปริมาณค่า 512 64 8 0.125 1/64
เลขฐานสิบหก A43C16 = (10x163) + (4x162) + (3x161) + (12x160) 0.3E16 = (3x16-1) + (14x16-2) หน้าจุดทศนิยม หลังจุดทศนิยม หลัก พัน ร้อย สิบ หน่วย เลขที่ตำแหน่ง 3 2 1 -1 -2 ค่าของตำแหน่ง 163 162 161 160 16-1 16-2 ปริมาณค่า 4096 256 16 1/16 1/256
1.1 เลขฐานสอง เลขฐานสิบ 101 01102 ขยายตัวเลขโดยใช้ 2 เป็นฐาน 101 01102 = (1x26) + (0x25) + (1x24) + (0x23) + (1x22) + (1x21) + (0x20) คำนวณหาค่าต่างๆ 101 01102 = (1x64) + (0x32) + (1x16) + (0x8) + (1x4) + (1x2) + (0x1) ผลคำตอบของการแปลงค่า 101 01102 = 8610
1.0101 12 ขยายตัวเลขโดยใช้ 2 เป็นฐาน 1.0101 12 = (1x20) + (0x2-1) + (1x2-2) + (0x2-3) + (1x2-4) + (1x2-5) คำนวณหาค่าต่างๆ 1.0101 12 = (1x1) + (0x0.5) + (1x0.25) + (0x0.0125) + (1x0.0625) + (1x0.03125) ผลคำตอบของการแปลงค่า 1.0101 12 = 1.3437510
2.1 เลขฐานสิบ เลขฐานอื่นๆ (จำนวนเต็ม) นำเลขฐาน 10 มาตั้ง แล้วหารด้วยเลขฐานที่ต้องการ การหารแต่ละครั้งให้เก็บเศษไว้ หารไปเรื่อยๆ จนกว่าผลลัพธ์จะเป็น 0 เมื่อการหารสิ้นสุด นำเศษมาเรียงกันจากล่างขึ้นบน ผลลัพธ์คือเลขฐานที่ต้องการแปลงไป
ตัวอย่าง : แปลงเลข 1310 ให้เป็นเลขฐานสอง 2) 13 เศษ 1 2) 6 เศษ 0 2) 3 เศษ 1 2) 1 เศษ 1 ดังนั้น 1310 = 11012
2.2 เลขฐานสิบ เลขฐานอื่นๆ (จำนวนจริง) แบ่งตัวเลขเป็น 2 ส่วน หน้าจุด, หลังจุด หน้าจุดทศนิยม(จำนวนเต็ม) -> หาแบบ 2.1 หลังจุดทศนิยม -> หาได้จาก 1. นำเลขที่จะแปลงตั้งคูณด้วยเลขฐาน 1.1 นำผลคูณที่อยู่หน้าจุดทศนิยมเก็บไว้ 1.2 เลขหลังจุดทศนิยมนำไปทำซ้ำขั้นตอนที่ 1 เรื่อยๆ จนกว่าจะมีค่าเป็นศูนย์ 2. นำ 1.1 เรียงกันจากบนลงล่าง ผลลัพธ์คือเลขฐานที่ต้องการแปลงไป
ตัวอย่าง : แปลงเลข 13.37510 ให้เป็นเลขฐานสอง หน้าจุด 13 = 11012 หลังจุด 0.375 => 0.375x2 = 0.75 -> 0 0.75x2 = 1.5 -> 1 0.5x2 = 1.0 -> 1 0.375 = 0.0112 ดังนั้น 13.37510 = 1101.0112
มาตรฐานของการแทนข้อมูล ข้อมูลทุกชนิดถูกเก็บในรูปสัญญาณทางไฟฟ้า (0/1) ต้องมีการกำหนดมาตรฐานของการแทนข้อมูล เพื่อให้ทุกเครื่องสามารถติดต่อสื่อสารกันได้เข้าใจ รูปแบบการแทนข้อมูลตัวอักษร รูปแบบการแทนข้อมูลตัวเลขจำนวนเต็ม รูปแบบการแทนข้อมูลตัวเลขจำนวนจริง
รูปแบบการแทนข้อมูลตัวอักษร ตัวอักษร - ไม่สามารถนำมาคำนวณได้ เป็นเพียงสัญลักษณ์แทนตัวอักษร รวมถึงตัวเลขต่างๆ ที่เป็นสัญลักษณ์( CPU ไม่สามารถนำมาประมวลผลได้) มีหลายรูปแบบ เช่น BCD, EBCDIC, ASSCII, Unicode
3. ASCII (American Standard Code for Information Interchange) พัฒนาโดย ANSI (American National Standards Institute) สำหรับ PC ใช้พื้นที่ 8 Bits ในการเก็บข้อมูล 1 ตัวอักษร เก็บตัวอักษรที่แตกต่างกันได้ 27 = 128 สัญลัษณ์ 1 บิตเอาไว้เป็นตัวเช็คความถูกต้องของข้อมูล เก็บได้แต่ตัวอักษรภาษาอังกฤษ, ตัวเลข, สัญลักษณ์พิเศษต่างๆ
4. Unicode พัฒนามาเพื่อให้รองรับหลายภาษาทั่วโลก รวมถึงภาษาไทย มีใน WindowsXP เป็นครั้งแรก(สำหรับผู้ใช้ทั่วไป) มีหลายเวอร์ชัน สำหรับการใช้งานที่ต่างกัน เช่น UTF-8, UTF-16, UTF-32 ฯลฯ มีขนาดได้สูงถึง 32 Bits ต่อ 1 ตัวอักษร แทนสัญลักษณ์ได้สูงถึง 232 สี่พันล้านสัญลักษณ์ รวมรหัส ASCII ไว้ในตัว ทำให้แทน ASCII ได้ทันที
รูปแบบการแทนข้อมูลตัวเลขจำนวนเต็ม เก็บโดยแปลงข้อมูลจากเลขฐาน 10 เป็นเลขฐาน 2 ข้อมูลที่เก็บมีความหมายในตัว สามารถคำนวณได้ แต่มีขอบเขตของตัวเลขที่เก็บได้ ซึ่งถูกกำหนดด้วยจำนวนของ Bits ที่ใช้แทนตัวเลข 1 ตัว ปกติใช้ 16,32,64 Bits (2,4,8 Bytes) เก็บตัวเลขได้สูงสุดที่ 216 - 65535 , 232 - 4 พันกว่าล้าน , 232 - .... ตามลำดับ
รูปแบบการแทนข้อมูลตัวเลขจำนวนจริง ใช้เก็บเลขทศนิยมแบบ exponential หรือ Floating point ซึ่งอยู่ในรูปของ +/- significant x 10exponent เช่น +1.637 x 109 => 1,637,000,000 เช่น -3.5416 x 10-5 => -0.000035416 เวลาเก็บจะแปลงเลขทศนิยมธรรมดาให้เป็น Floating point แล้วค่อยเก็บ ประหยัดเนื้อที่กว่า โดยแบ่งพื้นที่เก็บเป็น 3 ส่วน คือ sign, significant (fraction), exponent
ลักษณะการเก็บตัวเลขจำนวนจริงขนาด 32 Bits, 64 Bits