จุลดิศ พินิจพาระ

1. ความหมายของคำว่า "Computer Architecture" และ "Computer Organization"
 ( Computer Architecture) คือ ลักษณะต่างๆของระบบคอมพิวเตอร์ที่ผู้ใช้ๆทั่วไปสามารถ มองเห็นได้และจะมีผลต่อกระบวนการทำงานของคอมพิวเตอร์ 
( computer organization)  คือ กระบวนการการเชื่อมต่อคอมพิวเตอร์ที่ต้องมีการคำนึงถึง สถาปัตยกรรม 
2. วิวัฒนาการของคอมพิวเตอร์ จนถึงปัจจุบัน

  • จุดกำเนิดของคอมพิวเตอร์ต้นกำเนิดของคอมพิวเตอร์อาจกล่าวได้ว่ามาจากแนวความคิดของระบบตัวเลข ซึ่งได้พัฒนาเป็นวิธีการคำนวณต่าง ๆ รวมทั้งอุปกรณ์ที่ช่วยในการคำนวณอย่างง่าย ๆ คือ" กระดานคำนวณ" และ "ลูกคิด"
    ในศตวรรษที่ 17 เครื่องคำแบบใช้เฟื่องเครื่องแรกได้กำเนิดขึ้นจากนักคณิตศาสตร์ชาวฝรั่งเศษ คือ Blaise Pascal โดยเครื่องของเขาสามารถคำนวณการบวกการลบได้อย่างเที่ยงตรง และในศตวรรษเดียวกันนักคณิตศาสตร์ชาวเยอร์มันคือ Gottried Wilhelm von Leibniz ได้สร้างเครื่องคิดเลขเครื่องแรกที่สามารถคูณและหารได้ด้วย
    ในต้นศตวรรษที่ 19 ชาวฝรั่งเศษชื่อ Joseph Marie Jacquard ได้พัฒนาเครื่องทอผ้าที่สามารถโปแกรมได้ โดยเครื่องทอผ้านี้ใช้บัตรขนาดใหญ่ ซึ่งได้เจาะรู้ไว้เพื่อควบคุมรูปแบบของลายที่จะปัก บัตรเจาะรู(punched card) ที่ Jacquard ใช้นี้ได้ถูกพัฒนาต่อๆมาโดยผู้อื่น เพื่อใช้เป็นอุปกรณ์ป้อนข้อมูลและโปรแกรมเข้าเครื่องคอมพิวเตอร์ในยุคแรกๆ
    ต่อมาในศตวรรษเดียวกัน ชาวอังกฤษชื่อ Charles Babbage ได้ทำการสร้างเครื่องสำหรับแก้สมการโดยใช้พลังงานไอน้ำ เรียกว่า difference engine และถัดจากนั้นได้เสนอทฤษฎีเกี่ยวกับ คอมพิวเตอร์สมัยใหม่ เมื่อเขาได้ทำการออกแบบ เครื่องจักรสำหรับทำการวิเคราะห์ (analytical engine) โดยใช้พลังงานจากไอน้ำ ซึ่งได้มีการออกแบบให้ใช้บัตรเจาะรูของ Jacquard ในการป้อนข้อมูล ทำให้อุปกรณ์ชิ้นนี้มีหน่วยรับข้อมูล หน่วยประมวลผล หน่วยแสดงผล และหน่วยเก็บข้อมูลสำรอง ครบตามรูปแบบของคอมพิวเตอร์สมัยใหม่ แต่โชคไม่ดีที่แม้ว่าแนวความคิดของเขวจะถูกต้อง แต่เทคโนโลยีในขณะนั้นไม่เอื้ออำนวยต่อการสร้างเครื่องที่สามารถทำงานได้จริง อย่างไรก็ดี Charles Babbage ก็ได้รับการยกย่องว่าเป็นบิดาของคอมพิวเตอร์คนแรก และผู้ร่วมงานของเขาคือ Augusta Ada Byron ก็ได้รับการยกย่องว่าเป็นนักเขียนโปรแกรมคนแรกของโลก
เครื่อง Difference Engine ของ Charles Babbage

จากนั้นประมาณปี ค.ศ. 1886 Dr.Herman Hollerith ได้พัฒนาเครื่องจัดเรียงบัตรเจาะรูแบบ electromechanical ขึ้น ซึ่งทำงานโดยใช้พลังงานไฟฟ้า และสามารถทำการ จัดเรียง (sort) และ คัดเลือก (select) ข้อมูลได้ ต่อมาในปี ค.ศ. 1896 Hollerith ได้ทำการก่อตั้งบริษัทสำหรับเครื่องจักรในการจัดเรียงชื่อ Tabulating Machine Company และในปี ค.ศ.1911 Hollerith ได้ขยายกิจการโดยเข้าหุ้นกับบริษัทอื่นอีก 2 บริษัทจัดตั้งเป็นบริษัท Computing -Tabulating-Recording-Company ซึ่งประสบความสำเร็จเป็นอย่างมาก และในปี ค.ศ. 1924 ได้เปลี่ยนชื่อเป็น International Business Corporation หรือที่รู้จักกันต่อมาในชื่อของบริษัท IBM นั่นเอง
เครื่องจัดเรียงบัตรเจาะรูของ Dr. Her Hollerith

ในปี ค.ศ.1939 Dr. Howard H. Aiken จาก Harvard University ได้ร่วมมือกับบริษัท IBM ออกแบบคอมพิวเตอร์โดยใช้ทฤษฎีของ Babbage และในปี ค.ศ.1944 Harvard mark I ก็ได้ถือกำเนิดขึ้นเป็นคอมพิวเตอร์เครื่องแรก ซึ่งมีขนาดยาว 5 ฟุต ใช้พลังงานไฟฟ้าและใช้ relay แทนเฟือง แต่ยังทำงานได้ช้าคือใช้เวลาประมาณ 3-5 วินาทีสำหรับการคูณ
การพัฒนาที่สำคัญกับ Mark I ได้เกิดขึ้นปี 1946 ดดย Jonh Preper Eckert, Jr. และ Dr. Jonh W.Msuchly จาก University of Pennsylvnia ได้ออกแบบสร้างเครื่อง ENIAC ( Electronic Numeric Integator and Calcuator ) ซึ่งทำงานได้เร็วอยู่ในหน่วยของหนึ่งส่วนล้านวินาที ในขณะที่ Mark I ทำงานอยู่ในหน่วยของหนึ่งส่วนพันล้านเท่า โดยหัวใจของความสำเร็จนี้อยู่ที่การใช้หลอดสูญญากาศมาแทนที่ relay นั่นเอง และถดจากนั้น Mauchly และ Eckert ก็ทำการสร้าง UNIVAC ซึ่งเป็นคอมพิวเตอร์อิเล็กทรอนิส์เพื่อการค้าเครื่องแรกของโลก
เครื่อง ENIAC สูง 10 ฟุต กว้าง 10 ฟุต และยาว 10 ฟุต

การพัฒนาที่สำคัญได้เกิดขึ้นมาอีก เมื่อ Jonh von Neumann ซึ่งเป็นที่ปรึกษาของโครงการ ENIAC ได้เสนอแผนสำหรับคอมพิวเตอร์เครื่องแรกที่จะทำการเก็บโปรแกรมไว้ในหน่วยโปรแกรมไว้ในหน่วยความจำที่เหมือนกับที่เก็บข้อมูล ซึ่งพัฒนาการนี้ทำให้สามารถเปลียนวงจรของคอมพิวเตอร์ได้ดดยอัตโนมัติแทนที่จะต้องทำการเปลียนสวิทต์ด้วยมือเหมือนช่วงก่อน นอกจากนี้ Dr. Von neumann ยังได้นำระบบเลขฐานสองมาใช้ในคอมพิวเตอร์ซึ่งหบักการต่งๆเหล่านี้ได้ทำให้เครื่อง IAS ที่สร้างโดย Dr. von Neumann เป็นเครื่องคอมพิวเตอร์เอนกประสงค์เครื่องแรกของโลก เป็นการเปิดศักราชของคอมพิวเตอร์อย่างแท้จริงและยังได้เป็นบิดาคอมพวเตอร์คนที่ 2
  • ยุคของคอมพิวเตอร์
เทคโนโลยีคอมพิวเตอร์มีการพัฒนาอย่างต่อเนื่อง สามารถแบ่งออกได้โดยแบ่งส่วนประกอบของฮาร์ดแวร์ (Hardward ) เป็น 4 ยุคด้วยกัน
    • ยุคที่ 1 (1951-1958)

    ก่อนหน้าปี 1951 เครื่องคอมพิวเตอร์จะมีใช้เฉพาะนักวิทยาศาสตร์ วิศวกร และทหารเท่านั้น จนกระทั่งผู้สร้าง ENIAC คือ Mauchly และ Eckert ได้จัดตั้งบริษัทเพื่อทำตลาดเชิงพาณิชย์ของเครื่องรุ่นถัดมาของพวกเขา คือเครื่อง UNIVAC ซึ่งคอมพิวเตอร์ในยุคนี้จะมี หลอดสูญญากาศ และ ดรัมแม่เหล็ก (magnetic drum) เป็นส่วนประกอบสำคัญ แต่หลอดสุญญากาศจะมีไม่น่าเชื่อถือสูง เป็นเหตุให้ต้องใช้ความพยายามอย่างมากในการทำให้เครื่องในยุคนั้นสามารถทำงานได้ ส่วนดรัมแม่เหล็กถูกใช้เป็นหน่วยความจำหลัก (primary memory) บนเครื่องคอมพิวเตอร์ส่วนมากในยุคแรกนี้ ส่วนหน่วยบันทึกข้อมูลสำรอง (secondary storage) ซึ่งใช้เก็บทั้งข้อมูลและคำสั่งโปรแกรมในยุคนี้จะอยู่ในบัตรเจารู จนปลายยุคนี้เทปแม่เหล็กจึงได้ถูกนำมาใช้เป็นหน่วยบันทึกข้อมูลสำรอง

    ภาษาคอมพิวเตอร์ในยุคนี้จะอยู่ในรูปของภาษาเครื่อง ซึ่งเป็นตัวเลขฐาน 2 ทั้งสิ้น ทำให้ผู้ที่จะสามารถโปรแกรมให้เครื่องทำงานได้ ต้องเป็นผู้เชี่ยวชาญเท่านั้น
เครื่อง UNIVAC

    • ยุคที่ 2 (1959-1964)

    การพัฒนาที่สำคัญที่สุดที่แบ่งแยกยุคนี้ออกจากยุคแรก คือการแทนที่หลอดสูญญากาศด้วยทรานซิสเตอร์ (transistor) หน่วยความจำพื้นฐานก็ได้มีการพัฒนามาเป็น magnetic core รวมทั้งมีการใช้ magnetic disk ซึ่งเป็นหน่วยบันทึกข้อมูลสำรองที่มีความเร็วสูงขึ้น นอกจากนี้ ส่วนประกอบที่คอมพิวเตอร์ได้ถูกรวบรวมเข้าไว้ใน แผ่นวงจรพิมพ์ลาย (printed circuit boards) ซึ่งง่ายต่อการเปลี่ยนและมีการสร้างโปรแกรมวิเคราะห์เพื่อหาส่วนผิดพลาดได้อย่างรวดเร็ว

    ภาษาโปรแกรมระดับสูง เช่น FORTRAN และ COBOL ได้ถูกใช้ในการโปรแกรมสำหรับยุคนี้ โปรแกรมเมอร์สามารถใช้งานภาษาเหล่านี้ได้สะดวกกว่าคอมพิวเตอร์ในยุคที่ 1 เนื่องจากมีไวยากรณ์ที่คล้ายคลืงกับภาษาอังกฤษ อย่างไรก็ดี เนื่องจากคอมพิวเตอร์สามารถทำงานได้แต่เฉพาะกับภาษาเครื่อง ทำให้ต้องใช้โปรแกรมตัวอื่น คือ compiler และ interpreter ในการแปลงภาษาระดับสูงให้เป็นภาษาเครื่อง
    ในยุคที่ 2 เริ่มมีการติดต่อสื่อสารระหว่างคอมพิวเตอร์ 2 เครื่องที่อยู่ห่างกันโดยผ่านสายโทรศัพท์ ถึงแม้ว่าจะติดสื่อสารกันได้ช้ามากก็ตาม ปัญหาในยุคนี้คืออุปกรณ์รับข้อมูลและอุปกรณ์แสดงผลทำงานได้ช้ามาก ทำให้คอมพิวเตอร์ต้องรอการรับข้อมูลหรือการแสดงผลบ่อย ๆ ซึ่ง Dr.Daniel Slotnick ได้ทำการพัฒนาเพิ่มเติม โดยใช้หลักการของการประมวลผลแบบขนานกัน นอกจากนั้ยังมีกลุ่มคณาจารย์และนักเรียกจาก Massachusetts Instiute of Technoligy พัฒนาระบบ มัลติโปรแกรมมิ่ง (multiprogramming) ซึ่งเป็นการจัดสรรให้คอมพิวเตอร์ทำงานหลายโปรแกรมพร้อม ๆ กนได้ ทำให้ไม่ต้องเสียเวลารอหน่วยรับข้อมูลและหน่วยแสดงผลอีกต่อไป
    • ยุคที่ 3 (1965-1971)

    ในยุคที่ 3 เป็นยุคของอุตสาหกรรมคอมพิวเตอร์ที่มีการเติบโตมาก ได้มีการนำ แผงวงจรรวม (IC หรือ integrated circuits) ซึ่งประกอบด้วยทรานซิสเตอร์และวงจรไฟฟ้าที่รวอยู่บนแผ่นซิลิกอนเล็ก ๆ มาแทนการประกอบแผ่นวงจรพิมพ์ลาย ทำให้เวลาการทำงานขิงคอมพิวเตอร์ลดลงอยู่ในหน่วยหนึ่งส่วนพันล้านวินาที นอกจากนี้ มินิคอมพิวเตอร์ได้ถือกำเนิดขึ้นในปี ค.ศ.1965 คือเครื่อง PDP-8 ของ Digital Equipment Corportion (DEC) ซึ่งต่อมาก็มีการใช้มินิคอมพิวเตอร์ที่สามารถติดต่อกับคอมพิวเตอร์กันอย่างแผร่หลาย รวมทั้งมีการใช้งาน เทอร์มินัล (terminal) ซึ่งเป็นจอคอมพิวเตอร์ผ่านทาง คีย์บอร์ด (keyboard) ทำให้การป้อนข้อมูลและพัฒนาโปรแกรมกระทำได้สะดวกขึ้น
แผงวงจรรวมเปรียเทียบกันทรานซิสเตอร์และหลอดสูญญากาศ

    ภาษาโปรแกรมระดับสูงได้เกิดขึ้นมากมานในยุคที่ 3 เช่น RPG APL BASICA เป็นต้น และได้มีการเปิดตัว โปรแกรมจัดการระบบ (Operating system) ซึ่งช่วยให้สามารถบริการทรัพยากรของคอมพิวเตอร์ได้อย่างมีประสิทธิภาพ นอกจากนี้ ระบบแบ่งเวลา (time sharing) ก็ทำให้สามารถติดต่อเทอร์มินัลจำนวนมากเข้าไปยังคอมพิวเตอร์ 1 เครื่อง โดยที่ผู้ใช้แต่ละคนสามารถทำงานในส่วนของตนได้พร้อม ๆ กัน
    • ยุคที่ 4 (1971-ปัจจุบัน)

    ในยุคที่ 4 เทคโนโลยีแผงวงจรรวมได้พัฒนาขึ้นเป็น แผงวงจรรวมขนาดใหญ่ (LSI หรือ large-scale integartion) และจากนั้นก็มีการพัฒนาต่าเป็น แผงวงจรขนาดใหญ่มาก (Very Large-Scale integartion - VLSI) ซึ่งทำให้เกิด microprocessor ตัวโลกของโลก คือ Intel 4004 จากบริษัท Intel ซึ่งเป็นการใช้แผ่นชิฟเพียงแผ่นเดียวสำหรับเก็บ หน่วยควบคุม (control unit) และ คำนวณเลขตรรกะ (arithmetic-logic unit) ของคอมพิวเตอร์ทั้งหมดเทคนิคในการย่อทรานซีสเตอร์ให้อยู่กันอย่างหนาแน่นบนแผ่นซิลิกอนนี้ ได้รับการพัฒนาอย่างต่อเนื่องจากปัจจุบันสามารถเก็บทรานซิสเตอร์นับล้านตัวไว้ในชิปเพียงหนึ่งแผ่น ในส่วนของหน่วยบันทึกข้อมูลสำรอง (secondary storage) ก็ได้เพิ่มความจุขึ้นอย่างมากจนสามารถเก็บข้อมูลนับพันล้านตัวอักษรได้ในแผ่นดิสก์ขนาด 3 นิ้ว

    เนื่องจากการเพิ่มความจุของหน่วยบันทึกข้อมูลสำรองนี่เอง ซอฟต์แวร์ชนิดใหม่ได้พัฒนาขึ้น เพื่อให้สามารถเก็บรวมรวบและบันทึกแก้ไขข้อมูลจำนวณมหาศาลที่ถูกจัดเก็บไว้ นั่นคือ ซอฟร์แวร์ ฐานข้อมูล (Data base ) นอกจากนี้ ยังมีการถือกำเนิดขึ้นของเครื่องคอมพิวเตอร์ส่วนบุคคลในปี 1975 คือเครื่อง Altair ซึ่งใช้ชิป intel 8080 และถัดจากนั้นก็เป็นยุคของเครื่อง และ ตามลำดับ ในส่วนของซอฟต์แวร์ก็ได้มีการพัฒนาให้เป็นมิตรกับผู้ใช้ มีขนาดใหญ่และซับซ้อนมากขึ้นเรื่อย ๆ รวมทั้งมีการนำเทคนิคต่าง ๆ เช่น OOP (Object-Oriented Programming) และ Visual Programming มาเป็นเครื่องมือช่วยในการพัฒนา
    การพัฒนาที่สำคัญอื่นๆในยุคที่ 4 คือการพัฒนาเครื่องข่ายคอมพิวเตอร์ความเร็วสูง ทำให้คอมพิวเตอร์สามารถเชื่อมโยงและแลกเปลี่ยนกันได้ โดยการใช้งานภายในองค์กรนั้น ระบบเครื่อข่ายท้องถิ่น (Local Araa Networks) ซึ่งนิยมเรียกว่า แลน (LANs)จะมีบทบาทในการเชื่องโยงเครื่องนับร้อยเข้าด้วยกันในพื้นที่ไท่ห่าวกันนัก ส่วนระบบเครื่องข่ายระยะไกล ( Wide Area Networks ) หรือ แวน (WANs) จะทำหน้าที่เชื่อมโยงเครื่องคอมพิวเตอร์ที่อยู่ห่างไกลคนละซีกโลกเข้าด้วยกัน
3. การแทนข้อมูล (Data Representation) ในระบบคอมพิวเตอร์
การแทนรหัสข้อมูล (Data Representation)
บทคัดย่อ
ศึกษาเกี่ยวกับวิวัฒนาการของตัวเลข เลขมีหลักกับเลขไม่มีหลัก ฐานของระบบเลข ตรรกศาสตร์เบื้องต้น ตรรกะกับคอมพิวเตอร์ ระบบเลขฐานสอง ฐานแปด และฐานสิบหก หลักการคำนวณของเครื่องคอมพิวเตอร์
ศึกษาและปฏิบัติเกี่ยวกับระบบจำนวน, ระบบเลขฐาน, พีชคณิตเส้นตรงและทฤษฎีเมตริกซ์คอมพิวเตอร์กับเลขฐาน ตรรกะกับคอมพิวเตอร์ และหลักการคำนวณของเครื่องคอมพิวเตอร์
ความสำคัญ
รหัสข้อมูลในคอมพิวเตอร์ คอมพิวเตอร์เป็นเครื่องมืออุปกรณ์ทางอิเล็กทรอนิกส์ ที่ประกอบด้วยวงจรทางอิเล็กทรอนิกส์ จำนวนมาก ที่ใช้กระแสไฟฟ้าในการทำงาน นั่นแสดงว่าการทำงานของระบบคอมพิวเตอร์เป็นการทำงาน ในสภาวะของความต่างศักดิ์ทางไฟฟ้า โดยตรวจสอบว่าในหนึ่งหน่วยเวลานั้น มีกระแสไฟฟ้าในวงจรหรือไม่ จากการที่ไฟฟ้ามีสองสถานะ(On/Off) จึงเป็นข้อกำหนดสำหรับการสื่อสารในระบบคอมพิวเตอร์ว่าสถานะที่มีไฟฟ้าให้สื่อความหมายว่าเป็น "1" และสถานะที่ไม่มี ไฟฟ้าให้สื่อความหมายว่าเป็น "0" สถานะทางไฟฟ้าตรงกับระบบเลขจำนวนที่มนุษย์ใช้กันอยู่คือ
ระบบเลขฐานสอง(Binary Number) จึงเป็นการสื่อความหมายกันทั่วๆไปว่า ระบบคอมพิวเตอร์นั้นใช้ข้อมูลที่เป็นเลขฐานสองในการประมวลผลใดๆ ดังนั้นข้อมูลที่เราจะนำเข้าสู่ระบบคอมพิวเตอร์จะต้องถูกแปลงให้อยู่ในสถานะเลขฐานสองเพื่อให้สามารถสื่อความหมายกับระบบคอมพิวเตอร์ได้ การแทนข้อมูลด้วยรหัสเลขฐานสองนี้เรียกว่า "การแทนรหัสข้อมูล" (Data Code) จำนวนหลักของรหัสแทนข้อมูลเป็นตัวกำหนดว่า การจัดรูปแบบรหัสแทนข้อมูลนั้นสามารถแทนข้อมูลได้จำนวนเท่าไหร่ เช่น รหัสเอบซีดิก(EBCDIC : Extended Binary Code Decimal Interchange Code) ใช้จำนวนหลักสำหรับการแทนข้อมูล ทั้งหมด 8 หลัก( 8 Digit) แทนข้อมูลได้ 28 = 256 รหัสข้อมูล(Character) (ตามหลักการของการจัดหมู่ มีทั้งหมด n ตำแหน่ง แต่ละตำแหน่งเป็นได้ 2 สถานะคือ 0 หรือ 1 รูปแบบของการจัดหมู่ที่ไม่ซ้ำกันเลยได้ 2n รูปแบบ) เช่น รหัสข้อมูล 1010 แทนข้อมูล "A" รหัสแทนข้อมูล 1001 แทนข้อมูล "9" เป็นต้น อีกตัวอย่างหนึ่ง รหัส แอสกี(ASCII : American Standard Code International Interchange) แบบ หลักแทนรหัสข้อมูลได้ทั้งหมด 128 รหัสข้อมูล เช่น รหัสแทนข้อมูล 100-0001 แทนข้อมูล"A"เป็นต้น
วัตถุประสงค์
เพื่อให้นักศึกษามีความรู้เกี่ยวกับระบบคอมพิวเตอร์ การประมวลผลข้อมูล ระบบจำนวน การออกแบบงานเชิงโครงสร้าง แล้วพัฒนาเป็นโปรแกรมระดับสูงและการสื่อสารข้อมูล
ประเด็นเนื้อหาและลำดับการนำเสนอ
1.การแทนรหัสข้อมูล
การแทนข้อมูลในคอมพิวเตอร์
ขนาดของข้อมูล (Word Size)
การเข้ารหัสเลขฐานสอง(Binary Encoding)
2.ลักษณะโครงสร้างของข้อมูล (Data Structure)
ข้อมูลและการแทนข้อมูลในหน่วยความจำ
ข้อมูลในเครื่องคอมพิวเตอร์
3.ระบบเลขฐาน
การแปลงเลขฐาน
ฐานตัวเลข
การตรวจสอบความผิดพลาดของข้อมูล (Error Checking)
บิตตรวจพาริตี้ (Parity Check bit)
1. การแทนรหัสข้อมูล
• รหัส (Code) หมายถึงสัญลักษณ์ในการแทนข่าวสารในรูปแบบที่เหมาะสม
• รหัสมีความจำเป็นอย่างมากเกี่ยวกับการติดต่อระหว่างผู้ใช้กับเครื่องคอมพิวเตอร์
• การประมวลผลข้อมูลโดยเขียนคำสั่งควบคุมให้เครื่องคอมพิวเตอร์ทำงานที่เราต้องการ หรือการส่งข้อมูลเข้าไปให้เครื่องคอมพิวเตอร์ประมวลผลโดยจะทำงานกับข้อมูลนี้ในรูปแบบรหัสแทนข้อมูล
การแทนข้อมูลในคอมพิวเตอร์ (Data Representation)
• ข้อมูลมีหลายรูปแบบเช่น อักขระ สัญญาณเสียง ภาพ ฯลฯ
• คอมพิวเตอร์รับรู้ได้เพียง 2 สถานะเท่านั้น เปิด/ปิด หรือ 1/0 เรา
สามารถนำไปแทนเลขฐานสองได้คือ 1 กับ 0
• การจัดเก็บข้อมูลในลักษณะดังกล่าวคอมพิวเตอร์จะทำการแปลง
ข้อมูลเหล่านั้นให้เป็นข้อมูลในระบบเลขฐานสองเพื่อนำไปใช้งาน
• ในทำนองเดียวกันสำหรับการส่งข้อมูลจากคอมพิวเตอร์สู่ภายนอก
จะต้องมีการแปลงข้อมูลกับคืน
ขนาดของข้อมูล (Word Size)
• เลขฐานสอง 1 หลักสามารถแทนข้อมูลได้ 0 หรือ 1 เราเรียกว่าขนาด
ของข้อมูลเป็น บิต (BIT)
• 1 ไบต์ (Byte) มีขนาดของข้อมูลขนาด 8 บิต แทนสภาวะของข้อมูล
ได้ 256 สภาวะ (0-255)
• 1 เวิร์ด (Word) ขึ้นอยู่กับขนาดของบัสข้อมูลของเครื่องคอมพิวเตอร์
เช่น PC ปัจจุบัน 1 เวิร์ดมีขนาด 32 บิตเป็นต้น
การเข้ารหัสเลขฐานสอง (Binary Encoding)
• เป็นการแปลงข้อมูลที่เป็นตัวอักษร ตัวเลข และสัญลักษณ์พิเศษเป็นตัว
เลขฐานสองเพื่อป้อนให้กับคอมพิวเตอร์
• มีรหัสที่นิยมใช้อยู่ 2 รหัสข้อมูลได้แก่ EBCDIC และ ASCII โดยใช้ข้อมูล
ขนาด 1 ไบต์ในการเข้ารหัส
• ปัจจุบันใช้รหัส UNICODE (เนื่องจากความต้องการรหัสสำหรับภาษา
ท้องถิ่น) ใช้เลขฐานสองขนาด 16 บิต สามารถแทนข้อมูลอักขระได้ทุกภาษา
2. ลักษณะโครงสร้างของข้อมูล (Data Structure)
• Bit หน่วยข้อมูลที่เล็กที่สุดทางคอมพิวเตอร์ มีค่าเป็น 0 หรือ 1
บิต(Bit) บิต เป็นหน่วยข้อมูลที่เล็กที่สุด ที่นำมาประกอบกันเข้าเป็น หนึ่งรหัสแทนข้อมูล แบบ การแทนรหัสข้อมูล ในคอมพิวเตอร์ จำนวนหลักที่ใช้ในเลขฐานสองสำหรับข้อมูล 1 รหัสข้อมูล นั่นคือ จำนวนบิตที่ใช้สำหรับข้อมูล 1 รหัสข้อมูล หรือ 1 หลักก็คือ 1 บิตนั่นเอง ดังนั้น รหัสเอบซีดิก ที่ใช้รหัสแทนข้อมูลแบบ 8 หลัก จึงกล่าวได้ว่า 8 บิตเป็น 1 รหัสข้อมูล และสำหรับ รหัสแอสกี ที่ใช้รหัสแทนข้อมูลแบบ 7 หลัก แสดงว่า 7 บิตเป็น 1 รหัสข้อมูล รหัสแทนข้อมูล A (EBCDIC) 1 1 0 0 - 0 0 0 1 ตำแหน่ง บิต ที่ 1 2 3 4 5 6 7 8
• Byte ประกอบไปด้วยหลาย ๆ บิต เช่น 8 บิต เป็น 1 ไบต์
ไบต์(Byte) ไบต์ หมายถึง หน่วยของข้อมูลที่ นำบิตมารวมกันเข้า เช่น 8 บิต เท่ากับ 1 ไบต์ ดังนั้น ไบต์ จึง หมายถึงจำนวน หรือ อาจจะกล่าวว่าเป็น มาตราวัดจำนวนข้อมูล ในระบบคอมพิวเตอร์ เพราะโดยส่วนใหญ่หน่วยข้อมูลที่เล็กที่สุดที่นักเขียนโปรแกรม (Programmer) ใช้กันก็คือไบต์ รวมทั้งการวัดขนาดหน่วยความจุต่างๆ ก็วัดกันเป็น ไบต์
• Word ประกอบไปด้วยหลาย ๆ ไบต์ เช่น 1 เวิร์ด
เท่ากับ 2 ไบต์ (ในระบบเครื่อง 16 บิต) หรือเท่ากับ 4 ไบต์ (ในระบบเครื่อง 32 บิต) เป็นต้น
• Character อันได้แก่ตัวเลข 0-9 ตัวอักษร A-Z และ สัญลักษณ์พิเศษต่าง ๆ จะสัมพันธ์กับ
ไบต์และเวิร์ด
อักขระ (Character) 1. ตัวอักขระ (Character) หมายถึง สัญลักษณ์ต่าง ๆ ที่ใช้ภาษามนุษย์ แบ่งออกเป็น3 ประเภท คือ
1.1 ตัวเลข (Numeric) คือ เลขฐาน 10 ซึ่งประกอบด้วยตัวเลข 0,1,2,3,4,5,6,7,8,9
1.2 ตัวอักษร (Alphabetic) คือ ตัวอักษร A ถึง Z
1.3 สัญลักษณ์พิเศษ (Special Symbol) เช่น เครื่องหมายทางคณิตศาสตร์ และสัญลักษณ์ต่าง เช่น +, -, *, /? #, &
หรือ อักขระ หมายถึง สัญลักษณ์ที่ใช้สื่อความหมาย แทนรหัสข้อมูลในคอมพิวเตอร์ กับผู้ใช้คอมพิวเตอร์ สัญลักษณ์ที่เป็นไปได้สำหรับระบบคอมพิวเตอร์นั้นขึ้นอยู่กับ จำนวนบิตที่นำมาประกอบกันเข้าเป็น 1 รหัสข้อมูล เช่น รหัสแอบซีดิกใช้ 8 บิต ดังนั้นมีสัญลักษณ์ทั้งหมด 256 สัญลักษณ์ (256 Characters) ด้วยเหตุผลนี้จึงเป็นคำตอบได้ว่า ทำไมเราไม่สามารถใช้งานอักขระภาษาไทย ในระบบคอมพิวเตอร์มาตรฐานได้ เพราะยังไม่มี การแทนรหัสข้อมูลสำหรับอักขระ
ภาษาไทย ดังนั้นเราจำเป็นต้องใช้โปรแกรมประยุกต์สำหรับการเปลี่ยนรูปแบบการแสดงผลเป็นอักขระภาษาไทยทั้งที่ใช้รหัสแทนข้อมูลเดิมที่มีอยู่ในคอมพิวเตอร์ อักขระบางตัวสามารถสื่อความหมายได้ทันที หรือ การรวมกลุ่มของอักขระได้มาซึ่งความหมายของข้อมูลใดๆ ที่มนุษย์ใช้กันน้อย
• Field ได้แก่ Character ตั้งแต่ 1 ตัวขึ้นไปรวมกัน เป็นฟิลด์ที่มีความหมาย เช่น เลข
ประจำตัว ชื่อพนักงาน
เขตข้อมูล (Field) เขตข้อมูล หมายถึง กลุ่มของข้อมูลที่มีชนิดเดียวกัน เช่น เขตข้อมูลอายุ (15, 60, 24 ปี) เขตข้อมูลสีผม (ดำ น้ำตาล แดง) เขตข้อมูลระดับคะแนน (4, 3, 2, 1, 0) ข้อมูลในวงเล็บเป็นค่าของข้อมูลที่เป็นไปได้สำหรับเขตข้อมูลนั้น เขตข้อมูลนี้เรียกกันโดยทั่วไปว่าฟิลด์ (Field)
• Record ได้แก่ ฟิลด์ตั้งแต่ 1 ฟิลด์ขึ้นไปที่มีความสัมพันธ์เกี่ยวข้องกันรวมกันเป็นเรคคอร์
เช่น ชื่อ เลขประจำตัว ยอดขายของพนักงาน 1 คน รวมกันเป็นข้อมูลของพนักงานขาย 1 เรคคอร์ด
ระเบียน (Record) ระเบียน หมายถึง ข้อมูลโครงสร้างชนิดหนึ่งที่รวมเอา เขตข้อมูลหลายๆ เขตข้อมูล มาไว้ด้วยกันซึ่งเขตข้อมูลเหล่านี้จะต้องเป็นเขตข้อมูลที่มีความสัมพันธ์กัน และบ่งชี้ถึงข้อมูลชุดเดียวกัน เช่นระเบียนข้อมูลนักศึกษา ประกอบด้วยเขตข้อมูล รหัสประจำตัวนักศึกษา ชื่อ-สกุล วันเดือนปีเกิด เป็นต้น การเพิ่มรายละเอียดของระเบียนจะทำได้โดยเพิ่มเขตข้อมูลเข้าไปในระเบียน การใช้ข้อมูลโครงสร้างแบบระเบียนนี้ เพื่อง่ายในการอ้างอิงเวลาเข้าถึงข้อมูล ในทางปฏิบัติแล้วไม่สามารถประมวลผลข้อมูลที่เป็นระเบียนได้ ถ้าต้องการประมวลผลจะต้องประมวลข้อมูลที่เป็นค่าของเขตข้อมูลใด เขตข้อมูลหนึ่ง ที่ต้องการในระเบียนนั้น ๆ จะพบว่าข้อมูลทั้งหมดนี้ประกอบด้วย เขตข้อมูล 5 เขตข้อมูล คือ รหัสประจำตัว , ชื่อ-สกุล, วันเดือนปีเกิด, วันเข้าศึกษา, หมู่เรียน ซึ่งจะแสดงในแนวตั้งหรือเรียกว่าสดมภ์(column) และในแนวนอนหรือแถว(Row) หมายถึงจำนวนระเบียนที่มีอยู่ในรายการข้อมูลนี้ จำนวน 3 ระเบียน และจะเห็นว่าทุกๆระเบียนประกอบ
ด้วย 5 เขตข้อมูลเหมือนกัน
• File ได้แก่ ข้อมูลหลายเรคคอร์ดที่เป็นข้อมูลเรื่องเดียวกัน เช่น เรคคอร์ดเกี่ยวกับพนักงาน
ขายทั้งหมดในหน่วยงานหนึ่งรวมกันเป็นแฟ้มข้อมูล ชื่อว่า แฟ้มหนักงานขาย
แฟ้มข้อมูล (File) แฟ้มข้อมูล หมายถึง หน่วยที่ใช้สำหรับการรวบรวมข้อมูลที่มีความสัมพันธ์กัน และทำการจัดเก็บไว้ในสื่อบันทึกข้อมูล แฟ้มข้อมูลแบ่งออกเป็น 2 ประเภท คือ
แฟ้มข้อมูลแบบไม่มีโครงสร้าง หมายถึง แฟ้มข้อมูลที่มีการจัดเก็บข้อมูล ที่ไม่เป็นระเบียบไม่สามารถแบ่งข้อมูลในแฟ้มออกเป็นหมวดหมู่ย่อยได้ชัดเจน การเขียนโปรแกรมเพื่อทำการประมวลผลแฟ้มข้อมูลประเภทนี้ ต้องใช้ความสามารถของนักเขียนโปรแกรม ในการเขียนโปรแกรมเพื่อเข้าถึงข้อมูลที่ต้องการมากพอสมควร เช่น แฟ้มข้อมูลที่เป็นแฟ้มตัวอักษร (Text File) เป็นต้น
แฟ้มข้อมูลแบบมีโครงสร้าง หมายถึง แฟ้มข้อมูลที่มีการจัดระเบียบของข้อมูลในแฟ้มข้อมูลอย่างชัดเจน การเขียนโปรแกรมเพื่อเข้าถึงข้อมูลในแฟ้มข้อมูล ถ้าสามารถเข้าระเบียนใดๆได้แล้วสามารถเข้าถึงระเบียนอื่นๆ ได้ด้วย เช่นแฟ้มข้อมูลที่จัดเก็บเป็นระเบียนในรูปของตาราง เป็นต้น
• Database ได้แก่ ข้อมูลหลาย ๆ แฟ้มที่เกี่ยวข้องกันมาเก็บรวมกันเป็นฐานข้อมูล เช่น แฟ้มพนักงานขาย แฟ้มสินค้า แฟ้มรายการขาย แฟ้มลูกค้า รวมเป็นฐานข้อมูลของบริษัท
กุญแจข้อมูล (Key Field) กุญแจข้อมูล หมายถึง เขตข้อมูลที่ใช้สำหรับการค้นหาข้อมูลที่ต้องการจากแฟ้มข้อมูลแบบมีโครงสร้าง เพราะว่าแฟ้มข้อมูลนั้นประกอบด้วยระเบียนจำนวนมาก การค้นหาข้อมูลที่ต้องการนั้นจำเป็นจะต้องใช้เขตข้อมูลใดเขตข้อมูลหนึ่ง สำหรับการเข้าถึงข้อมูลในระเบียนต่างๆ เพื่อให้การเข้าถึงข้อมูลเป็นไปอย่างถูกต้องและรวดเร็ว กุญแจข้อมูล แบ่งเป็น 2 ประเภท คือ
7.1 กุญแจข้อมูลหลัก (Primary Key) หมายถึง กุญแจข้อมูล ที่ข้อมูลในเขตข้อมูลนี้ไม่ซ้ำกันเลยในแฟ้ม ข้อมูลนี้ ผลที่ได้จากการค้นหาจะได้ข้อมูลเพียง 1 ระเบียน หรือไม่พบข้อมูลระเบียนใดๆ ในแฟ้มข้อมูล กุญแจข้อมูล ประเภทนี้ เช่น รหัสประจำตัวนักศึกษา เลขที่บัตรประชาชน ซึ่งจะมีเพียง 1 ระเบียนเท่านั้นในแฟ้มข้อมูล
7.2 กุญแจข้อมูลรอง (Secondary key) หมายถึง กุญแจข้อมูลรอง ที่ข้อมูลในเขตข้อมูลนี้มีค่าที่ซ้ำกันได้ในแฟ้มข้อมูลนี้ ผลที่ได้จากการเข้าถึงแฟ้มข้อมูลด้วยคีย์อาจจะทำให้ได้ข้อมูลที่มากกว่า 1 ระเบียน หรือไม่พบข้อมูลระเบียนใดๆ กุญแจข้อมูล ประเภทนี้ถูกกำหนดขึ้นตามความต้องการของผู้ใช้ในขณะนั้นว่าต้องการข้อมูลจากเขตข้อมูลใด เช่น ต้องการรายงานข้อมูลนักศึกษาที่สังกัดหมู่เรียน วทบ. 1.2 ก็ต้องใช้ "หมู่เรียน" เป็นกุญแจรองเพื่อจำแนกหมู่เรียน เป็นต้น
ข้อมูลและการแทนข้อมูลในหน่วยความจำ Data Representation
• ระบบเลขเป็นส่วนสำคัญของการทำงานภายในเครื่องคอมพิวเตอร์
• ระบบเลขที่เราใช้กันอยู่ในชีวิตประจำวันเรียกว่าเลขฐานสิบ (Decimal)
• คอมพิวเตอร์ใช้ระบบเลขฐานสอง (Binary) ในการแทนข้อมูลและการประมวลผล
• ดังนั้นเลขทั้งสองระบบนี้จึงมีความสำคัญอย่างยิ่งต่อการศึกษาคอมพิวเตอร์
• ส่วนเลขฐานอื่น ๆ ก็มีหลักการเช่นเดียวกัน
• ในการเขียนเลขฐานต่าง ๆ นอกจากฐานสิบแล้ว จะเขียนเลขฐานห้อยท้ายทุกครั้ง เช่น (1010)2 หมายถึงเลขฐานสอง
การแทนรหัสข้อมูลที่เป็นจำนวนเลข (Numeric Data Representation)
การแทนข้อมูลแบบนี้ กำหนดเนื้อที่ในหน่วยความจำมีขนาดตายตัว (Fixed length word) สำหรับแทนตัวเลข 1 จำนวน
Half-word ใช้เนื้อที่ 2 ไบท์
Full-word ใช้เนื้อที่ 4 ไบท์
Double-word ใช้เนื้อที่ 8 ไบท์
1) เลขจำนวนเต็ม (Integer Representation)
1) เลขที่มีจุดทศนิยม (Floating Point Representation)
การแทนเลขจำนวนเต็ม
คอมพิวเตอร์แทนจำนวนเต็มด้วยหลักการ แทน2Complement นั่นคือ ใช้หลักในการแทนเลขลบและบวกเท่ากันถ้าเป็นจำนวนบวกจะขึ้นต้นด้วยเลข 0 ถ้าเป็น จำนวนลบจะขึ้นต้นด้วย 1 ถ้าต้องการเลขจำนวนมากก็เพิ่มจำนวนหลักให้มากขึ้นการแทนเลขจำนวนในคอมพิวเตอร์ 1. การแทนค่าแบบ 2’s complement ในการแทนเลขจำนวนในคอมพิวเตอร์นั้นจะแทนตัวเลขที่อยู่ในรูปของเลขฐานสอง ซึ่งได้กล่าวไว้แล้วในตอนต้น ซึ่งจะใช้แทนเฉพาะเลขจำนวนบวกเท่านั้น แต่ในชีวิตประจำวัน จริงๆมีการแทนจำนวนด้วยเลขจำนวนลบด้วย ดังนั้นในการแทนข้อมูลในคอมพิวเตอร์สำหรับการประมวลผลซึ่งจะมีทั้ง เลขจำนวนบวกและเลขจำนวนลบข้อมูลที่เก็บจึงอยู่ในรูป 2’Complement ดังนั้นในการหาค่าของเลขฐานสองที่เป็นค่าลบ หรือเราเรียกว่า เป็นการหาค่าคอมพลีเมนท์ของจำนวนนั้นนั่นเอง ซึ่งมีขั้นตอนในการหา 3 ขั้นดังนี้ 1.หาค่าของเลขฐานสองที่เป็นค่าบวก 2.ทำการสลับบิตโดยการเปลี่ยนค่าของแต่ละบิต จาก 0 ให้เป็น 1 และจาก 1 ให้เป็น 0 3.บวกค่า 1 กับค่าที่ได้ในขั้นตอนที่ 2 ดังนั้น ค่าที่ได้คือค่า คอมพลีเมนท์ หรือค่าลบ ของจำนวนข้างต้น
ขั้นตอนการทำ Floating point
เปลี่ยนเลขไปเป็นฐาน 16 Normalization เลขฐาน 16 (มีเลขหลังจุด และ ยกกำลัง)
เปลี่ยน Sign, Exponent, Mantissa เป็นเลขฐาน 2
Sign: 1 แทนค่าลบ 0 แทนค่าบวก
Mantissa: เปลี่ยนเป็นฐาน 2 เติมเลขจากขวา มา ซ้ายที่เหลือเติมศูนย์
Exponent เป็นได้ทั้งค่าบวก หรือ ลบ จึงต้องใช้วิธี Excess 64
Exponent 16 = 4016 + true exponent16
exponent16 ----> exponent 2
ตัวอย่าง ทำ Floating point
28 ----> 1C16
1C16 = (+.1C * 102)16
Sign ----> 0
Mantissa ----> 0001 11002
Exponent ----> 4016 + 216 = 42 16 -----> 100 00102
0 100 0010 0001 11000000..........................
การแทนรหัสข้อมูลที่เป็นอักขระ (Alphanumeric Data Representation)
รหัส BCD: Binary Coded Decimal Code
รหัส EBCDIC: Extended Binary Coded Decimal Interchange Code
รหัส ASCII: American Standard Code for Information Interchange
รหัส BCD ใช้ 6 บิตแทนอักขระ 1 ตัว ระบบนี้แทนอักขระได้ 64 ตัว (26 รูปแบบ)
C B A 8 4 2 1, Digit bit, Zone bit, Check bit/ Parity bit
รหัส BCD
การแทนรหัส BCD อักขระแบบตัวเลข (0 - 9) Zone Bit จะเป็น 00 อักขระแบบ
ตัวอักษร หรือ สัญลักษณ์พิเศษ Zone bit เป็น 11
รหัส EBCDIC
ใช้ 8 บิตแทนอักขระ 1 ตัว ระบบนี้แทนอักขระได้ 256 ตัว (28 รูปแบบ)C B A 8 4 2 1, Digit bit, Zone bit, Check bit/ Parity bit
รหัส EBCDIC
การบันทึกข้อมูลในระบบ EBCDIC มี 2 แบบ
การบันทึกแบบ Zone Decimal และ การบันทึกแบบ Packed Decimal การบันทึกแบบตัวเลข Zone bit มีค่าเป็น 1111 สำหรับเลขที่ไม่มีเครื่องหมายนำหน้า (12, F) 1100 สำหรับเลขที่มีเครื่องหมายบวก และ (+12, C) 1101 สำหรับเลขที่มีเครื่องหมายลบ (-12, D)
การแทนข้อมูลแบบ Packed Decimal
เป็นการเปลี่ยนลักษณะการเก็บรหัส EBCDIC ให้ใช้ในการคำนวณ การเปลี่ยนนี้จำนวนหลักสามารถยืดหยุ่นได้ ไม่ใช้กับตัวเลขที่เป็นจุดทศนิยม
วิธีการ PACK
“-123” สลับส่วน Zone bit และ Digit bit ของไบท์ขวาสุด ตัด Zone bit ของไบท์ ที่เหลือ
บีบข้อมูลซึ่งเป็น Digit Bit เข้ามา มักทำอยู่ในเลขฐาน 16 (123D) 16 วิธี Unpack ทำตรงกันข้าง กับการ Pack 1101 0001 1101 0010 1101 0011
รหัส ASCII
มี 2 ชนิด คือ 7 บิต กับ 8 บิต กำหนดให้ตัวเลขมีค่าน้อยกว่าตัวอักษรเป็นรหัสที่
นิยมในปัจจุบัน ลักษณะคล้าย EBCDIC มี Zone bit เป็น 0101 และ 011 สำหรับตัวเลข มี 1010 และ 100 สำหรับตัวอักษร
Parity bit หรือ Check bit
เป็นบิตที่ใช้ตรวจสอบการแทนรหัส มี 2 ระบบ
Even Parity ระบบจำนวนคู่ ระบบนี้ต้องมีบิตที่เป็นเลข 1 ทั้งหมดมีจำนวนเป็นเลขคู่
Odd Parity ระบบจำนวนคี่ ระบบนี้ต้องมีบิตที่เป็นเลข 1 ทั้งหมดมีจำนวนเป็นเลขคี่
1 1 1 0 0 0 1 0 1 1 0 1 0 1 0 1 1 0 0 0 1 1 1 1 0 1 0 1
ข้อมูลในเครื่องคอมพิวเตอร์
• เครื่องคอมพิวเตอร์ในปัจจุบันนี้ทำงานในระบบดิจิตอล
การส่งข้อมูลภายในจะเป็นสัญญาณ 2 ระดับ เท่านั้น เพื่อให้เกิดความผิดเพี้ยนน้อยที่สุด
สัญญาณข้อมูล 2 ระดับที่ว่านี้ สามารถแทนได้ด้วยเลขฐานสองซึ่งมีอยู่ 2 สถานะเช่นกันคือ 0 และ 1 ถ้านำเอาสัญญาณเหล่านี้รวมกลุ่มกัน ก็สามารถจะแทน ข้อมูลใดข้อมูลหนึ่งได้
3. ระบบเลขฐาน
• เลขฐานที่สำคัญที่เกี่ยวข้องกับระบบคอมพิวเตอร์ คือ
ฐานสิบ (Decimal)
ฐานสอง (Binary)
ฐานแปด (Octal)
ฐานสิบหก (Hexadecimal)
3.1 ระบบเลขฐาน
ระบบเลขฐาน คือ การนำตัวเลขมารวมกันเพื่อให้้เกิดความหมาย เป็น ค่าที่ต้อง
อาศัยวิธีการ กำหนดหลักของตัวเลข ซึ่งเรียกว่า Positional Notation
ค่าหลักประจำตำแหน่งหาได้จากค่าของเลขจำนวนนั้น (Absolute Value) คูณกับ
ค่าประจำหลัก เลขฐานที่ยกกำลังตามหลักที่ปรากฏ
ซึ่งหลักการเขียนเลขฐานจะประกอบไปด้วย
1. ตัวเลขในฐาน ต้องมีค่าน้อยกว่าตัวเลขบ่งบอกค่าฐาน เช่น เลขฐานสอง จะมีเลขแค่ 2 ตัวคือ 0,1 เลขฐานสิบมีเลข 0 ถึง 9 เป็นต้น
2. เลขฐาน 10 ไม่นิยมเขียนตัวเลขบ่งบอกค่าฐาน
3. หากตัวเลขที่ใช้เขียนเลขฐานมีค่าเกิน 9 จะใช้ตัวอักษรภาษาอังกฤษแทนตัวเลข
ตัวอักษร A แทนเลข 10 ตัวอักษร B แทนเลข 11
ตัวอักษร C แทนเลข 12 ตัวอักษร D แทนเลข 13
ตัวอักษร E แทนเลข 14 ตัวอักษร F แทนเลข 15
ตอนที่ 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 แสดงจำนวนตัวเลข ของเลขฐานต่างๆ
1).เลขฐานสอง คือตัวเลขที่มีค่าไม่ซ้ำกันสองหลัก ( 0 และ 1) เป็นเลขฐานเดียวที่เข้ากันได้กับ Hardware ของเครื่องคอมพิวเตอร์ได้โดยตรง เพราะการใช้เลขฐานอื่น จะสร้างความยุ่งยากให้กับเครื่องคอมพิวเตอร์อย่างมาก เช่น เลขฐานสิบมีตัวเลขที่เป็นสถานะที่ต่างกันถึง 10 ตัว ในขณะที่ระบบไฟฟ้ามีเพียง 2 สถานะ ซึ่งในช่วงเวลาหนึ่งๆมีเพียงสถานะเดียวเท่านั้น แต่ละหลักของเลขฐานสอง เรียกว่า Binary Digit (BIT) 2).เลขฐานแปด เลขฐานแปด มีความสัมพันธ์กับเลขฐานสอง คือ เลขฐานสองจำนวน 3 หลัก แทนด้วยเลข ฐานแปด 1 หลัก ดังนั้นเราจึงสามารถเขียนเลขฐานสอง 6 บิท แทนด้วยเลขฐานแปด 2 บิท การใช้เลขฐานแปดแทนเลขฐานสองทำให้จำนวนบิทสั้นลง 3).เลขฐานสิบ คือตัวเลขที่มีค่าไม่ซ้ำกันสิบหลัก (0,1,2,…,9) เป็นเลขฐานที่มนุษย์คุ้นเคยและใช้ในชีวิตประจำวันมากที่สุด ตัวเลขที่มีจำนวนมากกว่า 9 ให้ใช้ 10 ซึ่งเป็นการกลับไปใช้เลข 1 และ 0 อีก เพียงแต่ค่าของ 1 เปลี่ยนไปเป็น 10 เท่าของตัวมันเอง เช่น 333 (สามร้อยสามสิบสาม) แม้จะใช้ตัวเลข 3 ทั้งหมด แต่ตำแหน่งของตัวเลขย่อมมีความหมายตามตำแหน่งของแต่ละหลักนั้น กล่าวคือ หลักหน่วยน้อยกว่าหลักสิบ 10 เท่า หลักสิบน้อยกว่าหลักร้อย 10 เท่า ตามลำดับ
4).เลขฐานสิบหก เลขฐานสิบหก มีความสัมพันธ์กับเลขฐานสอง คือ เลขฐานสองจำนวน 4 หลัก แทนด้วย เลขฐานสิบหก 1 หลัก ดังนั้นเราจึงสามารถเขียนเลขฐานสอง 8 บิทแทนด้วยเลขฐานสิบหก 2 บิท การใช้เลขฐานสิบหกแทนเลขฐานสองทำให้จำนวนบิทสั้นลง
การแปลงเลขฐาน
การแปลงเลขจากหนึ่งไปยังอีกฐานหนึ่งนั้น ในระบบ Computer จะเกี่ยวข้องเฉพาะเลขฐานสอง เลขฐานแปด และเลขฐานสิบหก ดังนั้นสิ่งที่เราควรจะต้องรู้คือ
o การแปลงเลขฐานสิบเป็นเลขฐานสอง เลขฐานแปด และเลขฐานสิบหก
o การแปลงเลขฐานสอง เลขฐานแปด และเลขฐานสิบหก เป็นเลขฐานสิบ
o การแปลงเลขฐานสอง เป็นเลขฐานแปดและเลขฐานสิบหก
o การแปลงเลขฐานแปด และเลขฐานสิบหกเป็นเลขฐานสอง
o การแปลงเลขฐานแปดเป็นเลขฐานสิบหก
o การแปลงเลขฐานสิบหกเป็นเลขฐานแปด
การแปลงเลขฐานสิบ (Decimal number) เป็นเลขฐานสอง (Binary Number) เลขฐานแปด (Octal Number) และเลขฐานสิบหก (Hexadecimal number)
การแปลงเลขฐานสิบที่เป็นเลขจำนวนเต็มให้เป็นเลขฐานสอง เลขฐานแปดและเลขฐานสิบหก มีหลักการง่ายๆ และคล้ายคลึงกัน ซึ่งเราสามารถทำได้โดยการหารเลขฐานสิบที่ต้องการแปลงด้วยฐานของเลขที่ต้องการแปลง เช่น
• ถ้าต้องการแปลงให้เป็นเลขฐานสอง ก็เอา 2 หาร
• ถ้าต้องการแปลงให้เป็นเลขฐานแปด ก็เอา 8 หาร
• ถ้าต้องการแปลงให้เป็นเลขฐานสิบหก ก็เอา 16 หาร
เศษที่เหลือจากการหารแต่ละครั้ง ก็คือคำตอบที่ต้องการ โดยเศษที่เหลือจากการหารครั้งแรก เป็นตัวที่มีนัยความสำคัญน้อยที่สุด (Least significant digit หรือ LSD ) และเศษที่เหลือจากการหารครั้งสุดท้ายเป็นตัวที่มีนัยความสำคัญสูงที่สุด (Most significant digit หรือ MSD)
ส่วนเลขฐานสิบที่เป็นทศนิยม ถ้าต้องการให้เป็นเลขฐานอื่นๆ ดังกล่าว ก็สามารถทำได้โดยการคูณจำนวนทศนิยมนั้นด้วยฐานของเลขที่ต้องการแปลง หลายๆ ครั้ง เช่น
• ถ้าต้องการแปลงให้เป็นเลขฐานสอง ก็ให้เอา 2 คูณ
• ถ้าต้องการแปลงให้เป็นเลขฐานแปด ก็ให้เอา 8 คูณ
• ถ้าต้องการแปลงให้เป็นเลขฐานสิบหก ก็ให้เอา 16 คูณ
ผลลัพธ์จากการคูณที่เป็นเลขจำนวนเต็ม ก็คือ คำตอบที่ต้องการ ลองศึกษาจากตัวอย่างจากใบความรู้ต่อไปนี้ จะทำให้เข้าใจดีขึ้น
การแปลงเลขฐานสิบให้เป็นเลขฐานสอง เลขฐานแปด เลขฐานสิบหก
ตัวอย่างที่ 1.1 จงแปลง (25)10 ให้เป็นเลขฐานสอง (Binary number)
วิธีทำ
25 ÷ 2 = 12 เศษ 1
12 ÷ 2 = 6 เศษ 0
6 ÷ 2 = 3 เศษ 0
3 ÷ 2 = 1 เศษ 1
1 ÷ 2 = 0 เศษ 1
คำตอบหาได้โดยเรียงเศษจากล่างขึ้นบน ดังนั้น (25)10 = (11001)2
การแปลงเลขฐานสอง เลขฐานแปดและเลขฐานสิบหกเป็นเลขฐานสิบ
สามารถทำได้โดยการนำเลขแต่ละตำแหน่งของเลขฐานนั้นๆ คูณด้วยน้ำหนัก (Weighting) หรือค่าประจำหลัก ของเลขฐานนั้นแล้วนำมารวมกันทั้งหมดก็จะได้คำตอบที่ต้องการ
ตัวอย่างที่ 1.10 จงแปลง (11011)2 ให้เป็นเลขฐานสิบ (Decimal number)
วิธีทำ
(11011)2
=
(1 x 24)+(1 x 23)+(0 x 22)+(1 x 21)+(1 x 20)
=
16+8+0+2+1
=
27
คำตอบ ดังนั้น (11011)2 = (27)10
การแปลงเลขฐานสองเป็นเลขฐานแปด และการแปลงเลขฐานแปดเป็นเลขฐานสอง
ตัวอย่างที่ 1 จงแปลง (110111010)2 ให้เป็นตัวเลขฐานแปด Octal
วิธีทำ ในการทำ เราต้องแบ่งเลข Binary ออกเป็นชุดๆ ละ 3 Bit โดยนับจากทางขวามาทางซ้าย ถ้าชุดสุดท้ายมีไม่ถึง 3 Bit ให้เติม 0 ลงไป แต่ถ้าเป็นทศนิยม การแบ่งเป็นชุดให้นับจากทางซ้ายไปทางขวา เมื่อแบ่งได้เป็นชุดแล้วก็ให้แทนค่าเป็นเลขฐานแปดตามตารางเปรียบเทียบข้างต้น
(110111010)2
=
(110 111 010)2
110
=
6
111
=
7
010
=
2
=
(672)8
คำตอบ (110111010)2 = (672)8
ตัวอย่างที่3 จงแปลง (543)8 ให้เป็นตัวเลขฐานสอง Binary
วิธีทำ
5
=
101
4
=
100
3
=
011
(543)8
=
(101 100 011)2
คำตอบ (543)8 = (101100011)2
การแปลงเลขฐานสองเป็นเลขฐานสิบหก และการแปลงเลขฐานสิบหกเป็นเลขฐานสอง
ตัวอย่างที่ 5 จงแปลง (111111000011100.10011)2 ให้เป็นตัวเลขฐานสิบหก Hexadecimal
วิธีทำ
(111111000011100.10011)2
= (0111 1110 0001 1100. 1001 1000)2
= ( 7 E 1 C . 9 8 )16
คำตอบ (111111000011100.10011)2 = (7E1C.98)16
การแปลงเลขฐานแปดเป็นเลขฐานสิบหก และการแปลงเลขฐานสิบหกเป็นเลขฐานแปด
ตัวอย่าง 1 จงแปลง (5642)8 ให้เป็นเลขฐานสิบหก
วิธีทำ
(5642)8
=
(101 110 100 010)2
=
(1011 1010 0010)2
=
(BA2)16
ตอบ (5642)8 = (BA2)16
ตัวอย่าง 2 จงแปลง (FEC4)16 ให้เป็นเลขฐานแปด
วิธีทำ
(FEC4)16
=
(1111 1110 1101 0100)2
=
(001 111 111 011 010 100)2
=
(177324)8
ตอบ (FEC4)16 = (177324)8
การบวก ลบ เลขฐานต่างๆ
การบวกเลขฐานสอง
ตัวอย่างที่ 1 การบวกเลข (1011)2 กับ (1010)2
วิธีทำ
คู่ที่ 1 (นับจากทางขวาสุด) 1+0 = 1
(1011)2
คู่ที่ 2 1 + 1 = 10 (ใส่ 0 ทดไปหลักข้างหน้า 1 )
(1010)2
+
คู่ที่ 3 0 + 0 = 0 บวกกับตัวทดที่ทดมาจากคู่ที่ 2 ได้เท่ากับ 1
(10101)2
คู่ที่ 4 1 + 1 = 10 (ใส่ 0 ทดไปหลักข้างหน้า 1 แต่ไม่มีตัวบวกอีก ก็ใส่ 1 ไปหลักข้างหน้า
ตอบ
การบวกเลขฐานแปด และเลขฐานสิบหก
ตัวอย่างที่ 2 การบวกเลข (637)8 กับ (461)8
วิธีทำ
คู่ที่ 1 7 + 1 = 8 เอา 8 มาหารได้ผลหารเท่ากับ 1 เศษ 0 ใส่ 0 ทด 1
(637)8
+
คู่ที่ 2 3 + 6 = 9 บวกตัวทด 1 ได้ 10 เอา 8 มาหารได้ผลหารเท่ากับ 1 เศษ 2 ใส่ 2 ทด 1
(461)8
คู่ที่ 3 6 + 4 = 10 บวกตัวทด 1 ได้ 11 เอา 8 มาหารได้ผลหารเท่ากับ 1 เศษ 3 ใส่ 3 ทด 1
(1320)8
ตอบ (1320)8
การลบ
• เช่นเดียวกับการลบเลขฐานสิบ
การลบแบบ 2’s complement ในระบบเลขฐานสอง
เป็นวิธีการลบแบบบวกด้วยเลขที่ติดลบ ขั้นตอนดังนี้
• ทำคอมพลีเมนต์ตัวลบ เช่น 0011 -> 1100
• นำค่าที่ได้ไปบวกกับตัวตั้ง
• ถ้าผลลัพธ์เกินจำนวนหลักที่มากที่สุดให้ตัดออก
• บวกผลลัพธ์ที่ได้อีกหนึ่ง
3.4 การคูณเลขฐานสอง เลขฐานแปด เลขฐานสิบหก
หลักการคูณ
1. ตั้งคูณตามปกติเหมือนเลขฐานสิบ
2. ถ้าผลคูณมีค่าไม่มากกว่าเลขฐานนั้นๆ ให้ใส่ผลลัพธ์ได้เลย
3. กรณีผลคูณของคู่ใดมีค่ามากกว่าเลขฐานนั้นๆ ผลคูณที่ได้นั้นจะเป็นเลขฐานสิบ ให้เปลี่ยนเป็นเลขฐานนั้นๆ แล้วใส่ผลลัพธ์ และมีตัวทด
4. กรณีมีตัวทด ให้นำผลคูณของหลักถัดไปรวมกับตัวทดผลลัพธ์ที่ได้ แล้วจึงเริ่มทำข้อ 2 และทำไปเรื่อยๆ จนครบทุกคู่
5. นำผลคูณของตัวคูณแต่ละหลักมารวมกัน
ตัวอย่างที่ 3.10 (1101)2 x (101)2 = (……..)2
วิธีทำ 1101 x
101
1101
0000 +
1101
1000001
ตอบ (1000001) 2
3.5 การหารเลขฐานสอง เลขฐานแปด เลขฐานสิบหก
หลักการหาร
1. ใช้หลักของการคูณเข้ามาช่วย โดยการเดาผลหารก่อนแล้วนำผลที่ได้มาคูณกับตัวหาร
2. นำผลคูณที่ได้จากข้อ 1 มาลบกับตัวตั้ง โดยใช้หลักการลบของเลขฐานนั้นๆ
3. ทำเช่นนี้ไปเรื่อยๆ จนครบเหมือนการหารเลขฐานสิบ
ตัวอย่างที่ 3.13 (100001) 2 / (1101)2 = (……..)2
วิธีทำ 1101)1000001(101
01101
001101
1101
0000
ตอบ (101) 2
การตรวจสอบความผิดพลาดของข้อมูล (Error Checking)
• คอมพิวเตอร์เป็นเครื่องมือที่ใช้ไฟฟ้า ในบางครั้งการเปลี่ยนไปของ
แหล่งพลังงาน หรือสัญญาณทางไฟฟ้าอาจทำให้เกิดการผิดพลาด
ของข้อมูลได้
• ในการส่งข้อมูลติดต่อกันระหว่างเครื่องคอมพิวเตอร์ การได้รับการ
รบกวนจากสภาวะของสนามแม่เหล็กไฟฟ้าจากภายนอก อาจทำให้
ข้อมูลผิดพลาดได้
• มีหลายวิธีที่ใช้ในการตรวจสอบความผิดพลาดของข้อมูลแต่วิธีที่ง่าย
ที่สุดคือ การตรวจสอบบิตพาริตี้ (Parity bit checking)
บิตตรวจพาริตี้ (Parity Check bit)
􀂾 เป็นบิตที่เพิ่มเข้าไปกับข้อมูลขนาด 8 บิต (บิตที่ 9) เพื่อที่จะใช้ใน
การตรวจสอบจำนวนตัวเลข ‘1’ ในข้อมูลนั้น
􀂾 มี 2 แบบ พาริตี้บิตคู่ (even parity) และ พาริตี้บิตคี่ (odd parity)
􀂾 พาริตี้บิตคู่
• ถ้ามี ‘1’ เป็นเลขคู่ให้เติม ‘0’ ถ้าเลขคี่ให้เติม ‘1’ เข้าที่บิตพาริตี้
􀂾 พาริตี้บิตคี่
• ถ้ามี่ ‘1’ เป็นเลขคู่ให้เติม ‘1’ ถ้าเลขคี่ให้เติม ‘0’ เข้าที่พาริตี้บิต
สรุป
การแทนรหัสข้อมูลในคอมพิวเตอร์ สามารถใช้ข้อมูลที่เป็นตัวเลขและข้อมูลที่เป็นอักขระ โดย ก่อนที่จะแทนข้อมูลลงไปในเครื่องคอมพิวเตอร์ ก็ต้องทำการแปลงข้อมูลให้เป็นภาษาคอมพิวเตอร์ ข้อมูลมีหลายรูปแบบเช่น อักขระ สัญญาณเสียง ภาพ ฯลฯ คอมพิวเตอร์รับรู้ได้เพียง 2 สถานะเท่านั้น เปิด/ปิด หรือ 1/0 เราสามารถนำไปแทนเลขฐานสองได้คือ 1 กับ 0 การจัดเก็บข้อมูลในลักษณะดังกล่าวคอมพิวเตอร์จะทำการแปลง ข้อมูลเหล่านั้นให้เป็นข้อมูลในระบบเลขฐานสองเพื่อนำไปใช้งาน ในขณะเดียวกันสำหรับการส่งข้อมูลจากคอมพิวเตอร์สู่ภายนอก จะต้องมีการแปลงข้อมูลกับคืนด้วย
การแทนข้อมูลที่เป็นตัวเลข กำหนดเนื้อที่ในหน่วยความจำมีขนาดตายตัว (Fixed length word) สำหรับแทนตัวเลข 1 จำนวน Half-word ใช้เนื้อที่ 2 ไบท์ Full-word ใช้เนื้อที่ 4 ไบท์ Double-word ใช้เนื้อที่ 8 ไบท์
การส่งข้อมูลภายในจะเป็นสัญญาณ 2 ระดับ เท่านั้น เพื่อให้เกิดความผิดเพี้ยนน้อยที่สุด
สัญญาณข้อมูล 2 ระดับที่ว่านี้ สามารถแทนได้ด้วยเลขฐานสองซึ่งมีอยู่ 2 สถานะเช่นกันคือ 0 และ 1 ถ้านำเอาสัญญาณเหล่านี้รวมกลุ่มกัน ก็สามารถจะแทน ข้อมูลใดข้อมูลหนึ่งได้
เอกสารอ้างอิง
พรรณิภา ไพบูลย์นิมิต.เทคนิคการออกแบบโปรแกรมโครงสร้าง . -- เชียงใหม่ ฯ: ภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยเชียงใหม่, 2539
4. จงเปรียบเทียบคอมพิวเตอร์ในระบบ Microsoft Windows, Linux และ Apple Macintosh
Internet Explorer 9 มอบประสบการณ์ใช้งานเว็บที่ดีที่สุดสำหรับ Windows นี่คือเหตุผลหลักที่คุณควรดาวน์โหลดไปใช้งานทันที

1การเรียกดูทั่วไปที่รวดเร็ว — การเร่งการแสดงผลข้อความ วิดีโอ และกราฟิกด้วยฮาร์ดแวร์จะเร่งประสิทธิภาพการทำงาน และทำให้เว็บไซต์ของคุณมีลักษณะการทำงานคล้ายกับโปรแกรมที่ติดตั้งบนคอมพิวเตอร์ของคุณ
2
การออกแบบเพื่อความคล่องตัวและความสะดวกในการใช้งาน — ช่วยให้คุณสามารถควบคุมการทำงานพื้นฐานที่จำเป็นได้ และมุ่งเน้นไปที่การแสดงผลของเว็บ
3เข้าถึงไซต์ที่ชื่นชอบได้ในคลิกเดียว — ด้วยคุณสมบัติไซต์ที่ตรึงไว้ คุณจึงสามารถเข้าถึงไซต์ต่างๆ ที่คุณชื่นชอบได้โดยตรงจากแถบงานของ Windows โดยไม่จำเป็นต้องเปิดเบราว์เซอร์ก่อน
4
การค้นหาและแถบที่อยู่ที่ใช้งานรวมกัน — ไปยังเว็บไซต์หรือเริ่มการค้นหาได้จากที่เดียว
5เพจของแท็บใหม่ได้รับการออกแบบใหม่ — ขณะนี้คุณสามารถเข้าถึงไซต์ที่คุณเข้าชมบ่อยๆ ได้อย่างรวดเร็ว และยังสามารถเปิดแท็บที่ปิดไปแล้วขึ้นมาใหม่ เปิดเซสชันการเรียกดูล่าสุดขึ้นมาใหม่ หรือเริ่มใช้เซสชันการเรียกดูแบบ InPrivate ได้
6การผนวกรวมกับ Windows 7 — Internet Explorer 9 และ Windows 7 นำคุณสู่ประสบการณ์ใช้งานเว็บที่ดีที่สุดสำหรับ Windows ด้วย Snap, ไซต์ที่ตรึงไว้, รายการทางลัด และตัวควบคุมการแสดงตัวอย่างรูปขนาดย่อ
7
การจัดการ Add-on ที่ได้รับการปรับปรุง — ตัวให้คำแนะนำเกี่ยวกับประสิทธิภาพ Add-on จะแจ้งคุณเมื่อมี Add-on ที่ทำให้ความเร็วเบราว์เซอร์ของคุณลดลง แล้วจึงอนุญาตให้คุณปิดใช้งานหรือเอา Add-on นั้นออกได้ ซึ่งช่วยให้คุณมั่นใจได้ว่าเบราว์เซอร์ของคุณจะมีความเร็วคงที่
8
ช่วยควบคุมความเป็นส่วนตัวของคุณ — การป้องกันการติดตามจะช่วยให้คุณจำกัดการสื่อสารของเบราว์เซอร์กับเว็บไซต์บางประเภทเพื่อช่วยรักษาความเป็นส่วนตัวของข้อมูลของคุณ
9
จัดระเบียบการดาวน์โหลดของคุณ — ตัวจัดการการดาวน์โหลดทำหน้าที่เก็บรายการที่เปลี่ยนแปลงตลอดเวลาของไฟล์ที่คุณดาวน์โหลดจากอินเทอร์เน็ต แจ้งให้คุณทราบหากพบว่าไฟล์อาจเป็นอันตราย และยังช่วยให้คุณหยุดดาวน์โหลดชั่วขณะหรือเริ่มดาวน์โหลดใหม่ได้
Linux 
  • Linux มีซอฟต์แวร์ให้ใช้งานไม่มากนัก ถ้าคุณมีซอฟต์แวร์ซักตัวที่ซื้อมาและจำเป็นต้องใช้แต่คุณจะให้มันทำงานบน Linux นั้นเป็นเรื่องยาก แม้ว่า Linux จะมีซอฟต์แวร์ที่เป็น Opensource จำนวนมาก แต่ความสามารถในการทำงานนั้นยังไม่ดีเท่ากับซอฟต์แวร์ที่จัดจำหน่ายโดยผู้ผลิตซอฟต์แวร์ การเรียนรู้ที่จะใช้ซอฟต์แวร์ใหม่นั้นจำเป็นจะต้องใช้เวลาและความคุ้นเคย ถึงแม้ว่าบน Linux จะมีซอฟต์แวร์ที่ชื่อว่า WINE ซึ่งเป็นซอฟต์แวร์ที่จะสามารถทำให้ซอฟต์แวร์บน Windows ไปให้งานบน Linux หรือ Unix ได้นั้นแต่มีซอฟต์แวร์และอุปกรณ์จำนวนมากที่ไม่สามารถทำงานร่วมกับ WINE ได้ ยิ่งเป็นการเล่นเกมส์นั้นเป็นเรื่องยากสำหรับ Linux เลยก็ว่าได้
  • Linux เวทีนี้ไม่มีพี่เลี้ยง ถ้าคุณต้องการความช่วยเหลือบนโลกอินเตอร์เน็ทเกี่ยวกับปัญหาของคุณในการใช้ Linux การหาความช่วยเหลือนั้นเป็นการยากกว่า Windows มาก ถึงแม้ว่าคุณจะซื้อ Linux มาจากผู้ผลิตซึ่งก็สามารถโทรศัพท์สอบถามปัญหาได้ แต่ถ้าต้องการให้มาบริการถึงบ้านนั้นเป็นเรื่องเพ้อเจ้อถึงแม้จะเป็นเขตเมืองก็ตาม ต่างกับ Windows ที่มีบริการให้และมีผู้จัดจำหน่ายมากมายที่คอยช่วยเหลือคุณ ยิ่งถ้าเป็นการทำธุรกิจการเสียเวลานั้นอาจเป็นความเสียหายทางธุรกิจเลยทีเดียว Linux แต่ละค่ายนั้นก็มีความแตกต่างกันแม้ว่าจะเป็น Linux แต่โครงสร้างของซอฟต์แวร์นั้นก็ต่างกันพอสมควร ผู้ที่จะเปลี่ยนจาก Windows ไปยัง Linux นั้นจะต้องมีความชำนาญและประสบการณ์ในด้านเทคนิคมากพอตัวเลยทีเดียว
  • Linux การเรียนรู้ด้วยตนเอง ถึงแม้ว่า Linux สมัยนี้นั้นจะมีหน้าตาและการใช้งานที่ง่ายแต่การบำรุงรักษา การติดตั้งซอฟต์แวร์นั้น ยังหลีกหนี การใช้งานบรรทัดคำสั่งไปไม่พ้น ซึ่งแค่การใช้งานแบบกราฟิกก็จำเป็นต้องเรียนรู้อย่างมากแล้วสำหรับผู้เริ่มต้น เอกสาร การอบรม และสื่อ ที่จะสอนการใช้งานและบำรุงรักษานั้นเป็นเรื่องหาได้ยากบนโลก Linux ซึ่งต่างจาก Windows อย่างสิ้นเชิงซึ่งมีหนังสือเอกสาร การฝึกอบรมให้คุณหาเรียน หาซื้อได้อย่างมากมาย
  • Linux ยังไม่รองรับ Blu ray Linux นั้นไม่มีซอฟต์แวร์ที่เป็นซอฟต์แวร์เล่นแผ่น Blu ray เหมือนอย่าง WinDVD เนื่องจากมีข้อห้ามไม่ให้พัฒนาซอฟต์แวร์ที่ เล่น Blu-ray บน Linux เพราะปัญหาความยุ่งยากในการพัฒนาและเป็นเรื่องยากที่จะทำการถอดรหัส Blu ray บน Linux ถ้าคุณมี Blu ray จำนวนหนึ่งและจำเป็นจะต้องใช้ความสามารถของ Blu ray คุณจะต้องประสบปัญหานี้อย่างแน่นอน แต่ก็ไม่แน่นอนเสมอไปในอนาคตอาจมีการเปลี่ยนแปลงตามสถานการณ์หรือมีบุคคลพัฒนาขึ้นมาใช้เองอย่างที่เคยมีมา
  • Linux เราเข้ากันไม่ได้ ปัญหาหนึ่งที่ใหญ่มากสำหรับผู้ใช้ Linux และอาจจะต้องพบเจอคือปัญหาด้านการรองรับฮาร์ดแวร์ สำหรับฮาร์ดแวร์เก่าๆนั้นอาจไม่มีปัญหามากนักแต่ก็ยังมีฮาร์ดแวร์จำนวนหนึ่งที่ยังไม่รองรับ การแก้ปัญหาฮาร์ดแวร์ของผู้ใช้ Windows นั้นเป็นเรื่องง่ายกว่า Linux มากการใช้งาน ไดร์เวอร์สำหรับ Linux ก็ไม่มีการรับประกันแต่อย่างใดอีกทั้งอาจไม่สามารถเรียกใช้ความสามารถทั้งหมดของอุปกรณ์ได้ ยิ่งซอฟต์แวร์ บางอย่างที่จำเป้นต้องใช้งานคู่กับฮาร์ดแวร์แล้วยิ่งเป็นปัญหา แต่คุณสามารถตรวจสอบได้ว่าฮาร์ดแวร์ที่คุณจะซื้อนั้นรองรับ Linux หรือไม่โดยการใช้ LiveCD ทดลองใช้งานดูก่อนตัดสินใจซื้อ
  •  Apple Macintosh

    • 5. วิธีการแปลงเลขฐาน ระหว่างเลขฐานสอง, ฐานแปด, ฐานสิบ และฐานสิบหก
    • 2.1  กล่าวนำ  :  การใช้งานตัวเลขในชีวิตประจำวัน  เราจะใช้เลขฐานสิบในการหาค่าของตัวเลข  เราสามารถจะหาได้โดยวิธีการกระจายดังตัวอย่าง  เช่น
      5862    =  5000 + 800 + 60 + 2
      หรือ     =  5 x 103 + 8 x 10+ 6 x 10+ 2 x 100
                 =  5862
      ตัวคูณแต่ละหลัก (Digit) ที่เป็นเลข 10 ยกกำลัง เราเรียกว่า Weight จากตัวอย่างจะได้ค่า  Weight  ดังนี้
      ค่า  Weight  =  10      102      101      100         
      ในระบบเลขฐาน 10  ตัวเลขที่อยู่หลังจุดทศนิยมเรียกว่า  เลขทศนิยม  จุดทศนิยมนี้เป็นตัวแบ่งส่วนที่เป็นเลขจำนวนเต็ม  และส่วนที่เป็นเลขจุดทศนิยมออกจากกัน  ค่า Weight ของเลขจุดทศนิยม  จะเป็นดังนี้
      ค่า Weight  =  10-1     10-2     10-3     10-4
      พิจารณาตัวอย่าง  จากจำนวน  5862.512
                  ค่า  Weight  =  10    102     101     100  .  10-1     10-2     10-3   
                  ค่าจำนวน    =    5        8         6        2   .    5         1         2
      คำนวณค่า   =  (5x103) + (8x102) + (6x101) + (2x100) + 5x10-1) + (1x10-2) + 2x10-3)  =  5862.512   
      จากที่กล่าวมาข้างต้น  เป็นการหาเลขฐาน 10 จากการหาผลบวกของค่า Weight คูณด้วยเลขประจำหลัก


      2.2  เลขฐานที่ใช้กันกับระบบคอมพิวเตอร์
      2.2.1  เลขฐานสอง  (binary Number System)  ประกอบใช้กับวงจรอิเล็ก -ทรอนิกส์  เพราะวงจรมีแค่เพียง 2 สถานะ  นอกจากจะแทนด้วย Æ และ 1 แล้ว  ยังสามารถแทนด้วยสิ่งอื่นได้อีก  เช่น  เปิดกับปิด  mark กับspace  สูงกับต่ำ  เป็นต้น
      ในระบบเลขฐานสิบ  แต่ละหลักจะมีค่า Weight เป็นเลข 10 ยกกำลัง  แต่ในเลขฐานสองจะมีค่า Weight เป็น  2 ยกกำลัง  ดังรูป  แสดงค่า Weight ของเลขฐานสอง
                     210     29       2     27    26   25    24    2   2    20
                  1024   512   256   128   64  32   16    8     4     2
                              ตัวอย่าง  :  เลขฐานสองจำนวน  (110110)2    (ในการเขียนเลขฐานต่าง ๆ มักจะเขียนอยู่ในวงเล็บ และมีหมายเลขกำกับอยู่ตอนท้าย  เพื่อไม่ให้สับสน)
                  ค่า Weight        =  25     24     23     22     21    20
                  เลขฐานสอง      =   1      1      0      1      1      0
                  คำนวณค่า         =  (1x25) + (1x24) + (0x23) + 1x22) + (1x21) + (0x20)
                                          =  (54)10
                              สำหรับเลขฐานสองที่มีจุดทศนิยม  ค่า Weight ของเลขจุดทศนิยมในเลขฐานสอง เรียงตามลำดับดังต่อไปนี้
                  2-1          2-2          2-3                2-4                  2-5                  2-6
                  0.5      0.25       0.125         0.0625          0.03129          0.015625
                             
                              ในระบบเลขฐานสิบ  แต่ละหลักเราเรียกว่า หลัก (Digit)  แต่ในระบบเลขฐานสองเรียกว่า บิต (bit)  ในเลขฐานสองบิตที่มีค่า Weight ต่ำสุด หรือ มีค่านัยสำคัญด้อยที่สุดซึ่งอยู่ทางขวามือ เรียกว่า LSB (Least Significant Bit)และบิตที่มีค่า Weight มากที่สุด  หรือมีค่านัยสำคัญมากที่สุด  ซึ่งอยู่ทางซ้ายมือสุด  เรียกว่า  MSB (Most Significant Bit)  ส่วนในระบบเลขฐานสอง เรียกว่า  LSD (Least Significant Digit)  และ  MSD (Most Significant Digit)
                              2.2.2  เลขฐานแปด  :  ประกอบด้วยเลข 8 ตัว คือ  0, 1, 2, 3, 4, 5, 6, และ 7  เช่น  (4 5 6)8,  (6 4 3 5)8
                              2.2.3  เลขฐานสิบหก ประกอบด้วยเลข 16 ตัว คือ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E และ เช่น (51F)16 , (A9E1)16       



      2.3  การแปลงเลขฐานของระบบตัวเลข
      2.3.1 การแปลงฐานสองเป็นเลขฐานสิบ :
      หลักการ คือการเอาค่า Weight ของทุกบิตที่มีค่าเป็น 1 มาบวกกัน ดังตัวอย่าง
      ตัวอย่าง จงแปลง (11011101)2 ให้เป็นเลขฐานสิบ
      (11011101)2    = (1X27) + (1X26) + (0X25) + (1X24) + (1X23)+ (1X22) +
          (0X21) + (1X20)
      =  128 + 64 + 0 + 16 + 8 + 4 + 0 + 1
      =    (221)10
                             
                              ตัวอย่าง จงเปลี่ยน (1011.101)2 เป็นเลขฐานสิบ
      1
      0
      1
      1
      .
      1
      0
      1
      ผลลัพธ์ 
















      2-3


      0.125






      2-2



      0.0
      2-1
      0.5


      -
      20
      1.
      21


      2.
      22






      0.
      23









      8.
      (11.625)10
                             
                              \ (1011.101)2         = (11.625)10


      2.3.2        การเปลี่ยนเลขฐานสิบเป็นเลขฐานสอง
      หลักการ
      1.      ให้นำเลขฐานสิบเป็นตัวตั้งและนำ 2 มาหาร ได้เศษเท่าไรจะเป็นค่าบิตที่มีนัยสำคัญน้อยที่สุด (LSB)
      2.       นำผลลัพธ์ที่ได้จากข้อที่ 1 มาตั้งหารด้วย 2 อีกเศษที่จัดจะเป็นบิตถัดไปของเลขฐานสอง
      3.    ทำเหมือนข้อ 2 ไปเรื่อยๆ จนได้ผลลัพธ์เป็นศูนย์ เศษที่ได้จะเป็นบิตเลขฐานสองที่มีนัยสำคัญมากที่สุด (MSB)

      ตัวอย่าง จงเปลี่ยน (221)10 เป็นเลขฐานสอง
                           2  221                     เศษ      1          (LSB)
        2  110                     เศษ      0
                            2   55                    เศษ      1
          2   27                    เศษ      1
          2   13                    เศษ      1
          2     6                   เศษ      0
          2     3                   เศษ      1
          2     1                   เศษ      1
                                0                    เศษ      1          (MSB)
      \ (221)10         = (11011101)2

      วิธีคิดโดยใช้น้ำหนัก (Weight) ของแต่ละบิต
                              ตัวอย่าง   จงเปลี่ยน (221)10         = (……)2
      1.      นำค่าน้ำหนัก (Weight) มาตั้ง โดย Weight ที่มีค่ามากที่สุดต้องไม่เกินจำนวนที่จะเปลี่ยนดังนี้
      128    64  32  16  8  4  2  1
      2.      เลือกค่า Weight ที่มีค่ามากที่สุด และค่า Weight ตัวอื่น ๆ เมื่อนำมารวมกันแล้วให้ได้เท่ากับจำนวนที่ต้องการ
      ค่า Weight 128  64  32  16  8  4  2  1
      เลือก          128 + 64 + 0 + 16 + 8 + 4 + 0 + 1 = 221
      ฐานสอง        1        1    0     1      1    1    0     1
      \ (221)10         = (11011101)2

      การเปลี่ยนเลขฐานสิบที่มีจุดทศนิยมเป็นเลขฐานสอง
                         หลักการ
      1.      ให้เปลี่ยนเลขจำนวนเต็มหน้าจุดทศนิยมด้วยวิธี  ที่กล่าวมาแล้ว
      2.   ให้นำเลขจุดทศนิยมมาตั้งแล้วคูณด้วย 2 ผลคูณมีค่าน้อยกว่า 1 จะได้ค่าเลขฐานสองเป็น 0 แต่ถ้าผลคูณมีค่ามากกว่า 1 หรือเท่ากับ 1 จะได้ค่าเลขฐานสองเป็น 1
      3.   ให้นำเลขจุดทศนิยมที่ได้จากผลการคูณใน  มาตั้งและคูณด้วย 2 และพิจารณาผลลัพธ์เช่นเดียวกับข้อ  และกระบวนการนี้จะทำต่อไปเรื่อย ๆ จนกว่าผลคูณจะมีค่าเท่ากับ 1 หรือได้ค่าที่แม่นยำเพียงพอแล้ว
      ตัวอย่าง จงเปลี่ยน (0.375)10 เป็นเลขฐานสอง
      ผลการคูณ
      ผลของจำนวนเต็ม
      0.375 X 2 = 0.75
      0.75 X 2   = 1.5
      0.5 X 2     =  1.0   
      0
      1
      1
                  ดังนั้น (0.375)10 = (0.011)2
      ตัวอย่าง จงเปลี่ยน (12.35)10 เป็นฐานสอง
      1.      เปลี่ยน (12)10 ให้เป็นเลขฐานสอง
                  (12)10 = (1100)2
      2. เปลี่ยน (0.35)10 เป็นเลขฐานสอง
      ผลการคูณ
      ผลของจำนวนเต็ม
      0.35 X 2 = 0.7
      0.7 X 2   = 1.4
      0.4 X 2   = 0.8
      0.8 X 2   = 1.6
      0.6 X 2   = 1.2
      0.2 X 2   = 0.4     
      0
      1
      0
      1
      1
      0
      0.4 X 2   =  0.8
      0.8 X  2  =  1.6
      0
      1
      การเปลี่ยนจะซ้ำกันไปเรื่อย ๆ จะนำมาใช้เพียง 6 บิต
      ดังนั้น (12.35)10 = (1100.010110)2



      2.3.3        การเปลี่ยนเลขฐานแปดเป็นฐานสิบและเลขฐานสิบเป็นฐานแปด
      การเปลี่ยนเลขฐานแปดเป็นเลขฐานสิบ
                  หลักเกณฑ์ :  นำค่าน้ำหนัก (Weight)และเลขฐานแปดคูณด้วยเลข
                                                              ประจำหลักแล้วนำผลที่ได้ทุกหลักมารวมกัน
                                          น้ำหนัก : Weight ได้แก่ …  8 8 82  81  80  8-1  8-2  8-3
                  ตัวอย่าง : (134)8 = (…)10
                            (134)8 = (1X82) + (3X81) + (4X80)
                                             =  64 + 24 + 4
                                              =  (92) 10 
                  ดังนั้น (134)8 = (92)10
                  จุดทศนิยม
         การเปลี่ยนเลขฐานสอบเป็นเลขฐานแปด
                  หลักเกณฑ์ นำเลขฐานสิบเป็นตัวตั้งแล้วหารด้วย 8 เศษที่ได้จากการ
              หารจะเป็นค่าของเลขฐานแปด ทำเช่นเดียวกับการเปลี่ยน
               เลขฐานสิบเป็นฐานสอง
                                          ตัวอย่าง :  (92)10  =  (…)8
          8    92                  เศษ      4
          8    11                  เศษ      3
           8     1                  เศษ      1
                      0                             
                                                       1    3   4
      ดังนั้น (92)10 = (134)8


      2.3.4        การเปลี่ยนเลขฐานแปดเป็นสองและเลขฐานสองเป็นฐานแปด
      การเปลี่ยนเลขฐานแปดเป็นเลขฐานสอง
      หลักการ จะต้องใช้เลขฐานสิบเป็นตัวกลางในการเปลี่ยน

      2
       

      10
       

      8
       
                      

                  ตัวอย่าง :  (134)8 = (…)2
      1.      เปลี่ยนเลขฐานแปดเป็นเลขฐานสิบ
      (134)8 = (1X88) + (3X81) + (4X80)
                 = (92)10
      2.      เปลี่ยนเลขฐานสิบเป็นเลขฐานสอง
      (92)10 = (…)2
      Weight       = 64   32   16    8    4     2    1  
                        = 64 + 0 + 16 + 8 + 4 + 0 + 0
      เลขฐาน 2    =  1     0      1     1     1    0    0
                                          ดังนั้น (134)8     = (1011100)2
      การเปลี่ยนเลขฐานสองเป็นเลขฐานแปด
      หลักการ จะต้องใช้เลขฐานสิบเป็นตัวกลางในการเปลี่ยน

      แปด
       

      สิบ
       

      สอง
       
                      

                  ตัวอย่าง :  (1011100)2 = (…)8
      1.      เปลี่ยนเลขฐานสองเป็นเลขฐานสิบ
      (1011100)2 = 64 + 0 + 16 + 8 + 4 + 0 + 0
                        = (92)10
      2.      เปลี่ยนฐานสิบเป็นเลขฐานแปด
          8    92                  เศษ      4
           8    11                  เศษ      3
           8     1                  เศษ      1
                      0                             
                                                       1    3   4
                  ดังนั้น (1011100)2 = (134)8

      การเปลี่ยนเลขฐานสองเป็นเลขฐานแปดและฐานแปดเป็นเลขฐานสอง วิธีลัด
      เลขฐานแปด
      เลขฐานสอง
      0
      1
      2
      3
      4
      5
      6
      7
      000
      001
      010
      011
      100
      101
      110
      111
                              ตารางเปรียบเทียบเลขฐานแปดและเลขฐานสอง
                              จากตารางจะเห็นว่าเลขฐานแปดหนึ่งหลักสามารถแทนด้วยเลขฐานสองจำนวน 3 บิต
                              ตัวอย่าง จงแปลงเลขฐานสองเป็นเลขฐานแปด
                                              (1011100) 2 =  (…)8
                                                      วิธีทำ :              001      011      100
       

                                                        1           3          4
                              ดังนั้น     (1011100) 2 =  (134)8
                             
                              ตัวอย่าง  เปลี่ยนเลขฐานแปดเป็นเลขฐานสอง
                                            (6143)8 = (…)2


                              วิธีทำ                6          1          4          3

                                                     110       001     100       011
                              ดังนั้น  (6143)8 = (110001100011)2



                              2.3.5 การเปลี่ยนเลขฐานสิบหกเป็นฐานสิบและเลขฐานสิบเป็นฐานสิบหก
                                        การเปลี่ยนเลขฐานสิบหกเป็นเลขฐานสิบ     
                                        หลักการ นำค่าน้ำหนัก (Weight) ของเลขฐานสิบหกคูณด้วยเลขประจำ
       หลัก และนำผลที่ได้ทุกหลักมารวมกัน
                                        น้ำหนัก (Weight) : … 16 163   162  161  160  16-1 16-2 16-3
                                         ตัวอย่าง   (6C)16 = (…)10
                                                      (6C)16   = (5X161) + (12X160)
                                                                  = 80 + 12
                                                                  = (92)10
                                          ดังนั้น    (6C)16   = (92)10
                                                                              ตัวอย่าง (0.3)16  = (…)10
      (0.3)16 = 3X10-1
      = 3X0.0625
                                                                  = (0.1875)10
                                          ดังนั้น    (0.3)16  = (0.1878)10

      การเปลี่ยนเลขฐานสิบเป็นเลขฐานสิบหก
                  หลักการ นำเลขฐานสิบมาเป็นตัวตั้งแล้วนำ 16 มาหาร เศษที่ได้จากการหาร จะเป็นค่า
          เลขฐานสิบหก ทำเช่นเดียวกับการเปลี่ยนเลขฐานสิบเป็นเลขฐานสอง
                  ตัวอย่าง :  (92)10 = (…)16
                              วิธีทำ :                     16   92                     เศษ 12 =C
        16    5                     เศษ        5
          
                                                                                                           
              5    C
                              ดังนั้น (92)10 = (5C)16
                  ตัวอย่าง             (0.7875)10                =          (….)16
                              วิธีทำ              
      ผลการคูณ
      ผลของจำนวนเต็ม
      0.7875 X 16  = 12.6
      0.6 X 16        = 9.6
      12 = C
      9
      0.6 X 16        = 9.6
      0.6 X 16        = 9.6
      9
      9
                  ดังนั้น (0.7875)10 = (0.C9)16




                  2.3.6 การเปลี่ยนเลขฐานสองเป็นฐานสิบหก และฐานสิบหกเป็นฐานสอง
                             การเปลี่ยนเลขฐานแปดเป็นเลขฐานสอง
                              หลักการ :  จะต้องใช้เลขฐานสิบเป็นตัวกลาง 

      สอง
       

      สิบ
       

      สิบหก
       
        

                              ตัวอย่าง :  (5C)16 = (…)2
                                          1. เปลี่ยนเลขฐานสิบหกเป็นเลขฐานสิบ
                                               (5C)16          = (5X161) + (12X160)
                                                                  = 80 + 12
                                                                  = (92)10
                                          2. เปลี่ยนเลขฐานสิบเป็นเลขฐานสอง
                                               (92)10          = (…)2
                                                Weight       = 64  32  16  8  4  2  1
                                                                      64 + 0 + 16 +  8 + 4 + 0 + 0
                                                 เลขฐานสอง =  1     0     1      1     1    0     0 
                                                 ดังนั้น (5C)16          = (1011100)2

      การเปลี่ยนเลขฐานสองเป็นเลขฐานสิบหก
                  หลักการ ต้องใช้เลขฐานสิบเป็นตัวกลาง
      ตัวอย่าง :  (1011100)2 = (…)16
                                          1. เปลี่ยน (1011100)2เป็นเลขฐานสิบ
                                               (1011100)2 = (92)10
                                          2. เปลี่ยนเลขฐานสิบเป็นเลขฐานสิบหก
      16   92            เศษ 12 =C
      16    5             เศษ        5
                                                               0            
                                                                                                    5    C
                                                 ดังนั้น (1011100)2  = (5C)16

      การเปลี่ยนเลขฐานสิบหกเป็นฐานสองและเลขฐานสองเป็นฐานสิบหกวิธีลัด
      เลขฐานแปด
      เลขฐานสอง
      0
      1
      2
      3
      4
      5
      6
      7
      8
      9
      A
      B
      C
      D
      E
      F
      0000
      0001
      0010
      0011
      0100
      0101
      0110
      0111
      1000
      1001
      1010
      1011
      1100
      1101
      1110
      1111
                ตารางเปรียบเทียบเลขฐานสิบหกกับเลขฐานสอง  
      จากตารางจะเห็นว่า เลขฐานสิบหกหนึ่งหลักสามารถจะแทนด้วยเลขฐานสองจำนวน 4 บิต


      ตัวอย่าง จงเปลี่ยน (1011100)2 เป็นเลขฐานสิบหก
      วิธีทำ    0101    1100
                 
                     5          12
                
                      5            C                    
                  ดังนั้น (1011100)2 = (5C)16
      ตัวอย่าง  จงเปลี่ยน (1011110111011)2 เป็นเลขฐานสิบหก
      วิธีทำ    0001    0111    1011    1011

                      1          7          11        11      

                        1         7            B         B   
                     ดังนั้น (1011110111011)2 = (17BB)16
      ตัวอย่าง จงเปลี่ยน (A95)16 เป็นเลขฐานสอง
      วิธีทำ                  A        9           5

                              1010    1001    0101
                  ดังนั้น (A95)16 = (101010010101)2







ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

แผ่นบูตและโปรแกรมป้องกันและกำจัดไวรัสใน USB Drive

คำสั่ง network บน Dos เบื้องต้น

จุลดิศ พินิจพาระ