Internet คืออะไร
อินเทอร์เน็ต คือ เครือข่ายคอมพิวเตอร์ที่เชื่อมต่อกันเป็นจำนวนมาก ครอบคลุมไปทั่วโลก แตกต่างกับ Intranet ซึ่งเป็นเครือข่ายที่ไม่ครอบคลุมทั่วโลก อินเทอร์เน็ตนั้นอาศัย โครงสร้างระบบสื่อสารโทรคมนาคม เป็นตัวกลางในการแลกเปลี่ยนข้อมูล มีการประยุกต์ใช้งานหลากหลายรูปแบบ อินเทอร์เน็ตเป็นทั้งเครือข่ายของคอมพิวเตอร์ และเครือข่ายของเครือข่าย เพราะอินเทอร์เน็ต ประกอบด้วยเครือข่ายย่อย เป็นจำนวนมากต่อเชื่อมเข้าด้วยกันภายใต้มาตรฐานเดียวกันจนเป็น เครือข่ายขนาดใหญ่ อินเทอร์เน็ตเป็นเครือข่ายสาธารณะที่ไม่มีผู้ใดเป็นเจ้าของ ทำให้การเข้าสู่เครือข่ายเป็นไปได้อย่างเสรี อินเตอร์เน็ต ถือเป็นระบบเครือข่ายคอมพิวเตอร์สากลที่เชื่อมต่อเข้าด้วยกัน ภายใต้มาตรฐานการสื่อสารเดียวกัน เพื่อใช้เป็นเครื่องมือสื่อสารและสืบค้นสารสนเทศจากเครือข่ายต่างๆ ทั่วโลก ดังนั้น อินเตอร์เน็ตจึงเป็นแหล่งรวมสารสนเทศจากทุกมุมโลก ทุกสาขาวิชา ทุกด้าน ทั้งบันเทิงและวิชาการ ตลอดจนการประกอบธุรกิจต่างๆ ประโยชน์ของ อินเตอร์เน็ตสามารถเข้าถึงกลุ่มเป้าหมายจำนวนมากๆ ได้ในเวลาอันรวดเร็วไม่มีข้อจำกัดในเรื่องของระยะทาง ไม่จำกัดรูปแบบของ ข้อมูล ซึ่งมีได้ทั้งข้อมูลที่เป็นข้อความอย่างเดียว หรืออาจมีภาพประกอบ รวมไปถึงข้อมูลชนิดมัลติมีเดีย และใช้ต้นทุนในการลงทุนต่ำ
แหล่งรวบรวมสาระ...(รึเปล่า)
วันเสาร์ที่ 28 กรกฎาคม พ.ศ. 2555
วันพฤหัสบดีที่ 26 กรกฎาคม พ.ศ. 2555
ออกแบบหน้าเว็บด้วย Photoshop
เราจะมาพูดถึง การออกแบบหน้าเว็บด้วยโปรแกรม Photoshop
ก่อนอื่นเราต้องมาเปิดโปรแกรม Photoshop
เลือกภาพที่เราต้องการนำมาเป็นพื้นหลังเว็บของเรา
จากนั้นก็ทำการออกแบบหน้าเว็บ เช่นใส่หัวเว็บ ใส่เมนู และตกแต่งตามต้องการ
จากนั้น save for web
จากนั้นเปิดโปรแกรม Dream ขึ้นมาแล้วก็ แทรกตารางจากนั้นก็นำภาพที่เราตัดไว้ มาใส่ตามลำดับ ดังภาพ
วันอาทิตย์ที่ 15 กรกฎาคม พ.ศ. 2555
ตัวแปร ในภาษา c
ตัวแปรจะเป็นชื่อที่ใช้ในการบอกจำนวนหรือปริมาณ
ซึ่งสามารถที่จะทำการเปลี่ยนแปลงจำนวนได้ด้วยโปรแกรมคอมพิวเตอร์
การตั้งชื่อตัวแปร จะต้องตั้งชื่อให้แตกต่างไปจากชื่อของตัวแปรอื่นๆ
ยกตัวอย่างชื่อของตัวแปร ได้แก่ x, y, peter, num_of_points และ streetnum
เป็นต้น โดยปกติการเขียนโปรแกรมที่ดี
ควรจะตั้งชื่อตัวแปรให้สอดคล้องกับการทำงานหรือหน้าที่ของตัวแปรนั้นๆ
เพราะเมื่อถึงเวลาต้องมาทำการปรับปรุงแก้ไขโปรแกรม
จะสามารถทำได้โดยไม่ยากนัก
ในภาษา C หรือ C++ ได้มีกฏในการตั้งชื่อตัวแปรที่สามารถใช้งานได้ดังนี้
- ชื่อตัวแปรจะต้องขึ้นต้นด้วยตัวอักษร
- ชื่อตัวแปรจะประกอบไปด้วย ตัวอักษร ตัวแลข และ _ ได้เท่านั้น
- ชื่อตัวแปรจะต้องไม่ใช่ชื่อ reserved word (ชื่อที่มีการจองไว้แล้ว)
ตัวอย่างของชื่อตัวแปรที่สามารถนำมาใช้ตั้งชื่อได้ ได้แก่
length, days_in_year, DataSet1, Profit95, Pressure, first_one
และตัวอย่างของชื่อ ที่ไม่สามารถนำมาใช้เป็นชื่อตัวแปรได้ ยกตัวอย่างเช่น
day-in-year, 1data, int, first.val เป็นต้น
reserved word (ชื่อที่มีการจองไว้แล้ว)
Reserved words หรือตัวแปรที่ได้จองไว้แล้วนั้น จะประกอบไปด้วยตัวอักษรตัวเล็กทั้งหมด และจะมีความสำคัญสำหรับภาษา C++ และจะไม่นำมาใช้ด้วยวัตถุประสงค์อื่นๆ ตัวอย่างของ Reserved words ได้แก่ and, bool, break, case, catch, char, class, continue, default, delete, do, double, if , else, enum, export, extern เป็นต้น
นอกจากนี้ในภาษา C หรือ C++ ชื่อตัวแปร ที่ประกอบไปด้วยอักษรเล็ก หรือใหญ่ ก็มีความแตกต่างกัน หรือที่เรียกว่า Case sensitive ยกตัวอย่างเช่น
‘X’ และ ‘x’ เป็นตัวแปรต่างกัน
‘peter’ และ ‘Peter’ เป็นตัวแปรต่างกัน
‘bookno1’ และ ‘bookNo1’ เป็นตัวแปรต่างกัน
‘XTREME’ และ ‘xtreme’ เป็นตัวแปรต่างกัน
‘X1’ และ ‘x1’ เป็นตัวแปรต่างกัน
‘int’ และ ‘Int’ เป็นตัวแปรต่างกัน
การกำหนดชนิดของตัวแปร (Declaration of Variables)
ในภาษา C หรือ C++ (และโปรแกรมในภาษาอื่นๆ) ตัวแปรทุกตัวที่จะมีการเรียกใช้ในโปรแกรมจำเป็นต้องมีการกำหนดชนิดของตัวแปร นั้นๆ ก่อนที่จะทำการเรียกใช้ตัวแปร
การกำหนดชนิดของตัวแปรมีวัตถุประสงค์หลัก 2 ประการได้แก่
- เป็นการบอกชนิด และตั้งชื่อตัวแปรที่จะเรียกใช้ ชนิดของตัวแปรจะทำให้คอมไพเลอร์สามารถแปลคำสั่งได้อย่างถูกต้อง (ยกตัวอย่างเช่น ใน CPU คำสั่งที่ใช้ในการบวกตัวเลขจำนวนเต็ม 2 จำนวน ย่อมแตกต่างจากคำสั่งที่จะบวกจำนวนจริง 2 จำนวนเข้าด้วยกัน)
- ชนิดของตัวแปร ยังเป็นบ่งบอกคอมไพเลอร์ให้ทราบว่าจะต้องจัดเตรียมเนื้อที่ให้กับตัวแปรตัว นั้นมากน้อยเท่าใด และจะจัดวางตัวแปรนั้นไว้แอดเดรส (Address) ไหนที่สามารถเรียกมาใช้ใน code ได้
สำหรับในบทความนี้จะพิจารณาชนิดตัวแปร 4 ชนิดที่ใช้กันมากได้แก่ int, float, bool และ char
int ชนิดตัวแปรที่สามารถแทนค่าจำนวนเต็มได้ทั้งบวกและลบ โดยปกติสำหรับคอมพิวเตอร์ทั่วไป คอมไพเลอร์ จะจองเนื้อที่ 2 ไบต์ สำหรับตัวแปรชนิด int จึงทำให้ค่าของตัวแปรมีค่าตั้งแต่ -32768 ถึง +32768
ตัวอย่างของค่า int ได้แก่ 123 -56 0 5645 เป็นต้น
floatชนิดของตัวแปรที่เป็นตัวแทนของจำนวนจริง หรือตัวเลขที่มีค่าทศนิยม ความละเอียดของตัวเลขหลังจุดทศนิยมขึ้นอยู่กับระบบคอมพิวเตอร์ โดยปกติแล้ว ตัวแปรชนิด float จะใช้เนื้อที่ 4 ไบต์ นั่นคือจะให้ความละเอียดของตัวเลขหลังจุดทศนิยม 6 ตำแหน่ง และมีค่าอยู่ระหว่าง -1038 ถึง +1038
ตัวอย่างของค่า float ได้แก่ 16.315 -0.67 31.567
bool ชนิดของตัวแปรที่สามารถเก็บค่าลอจิก จริง (True) หรือ เท็จ (False) ตัวแปรชนิดนี้ เป็นที่รู้จักกันอีกชื่อคือ ตัวแปรบูลีน (Boolean)
ตัวอย่างของตัวแปรชนิด bool ได้แก่ 1 0 true false (เมื่อ 1 = true และ 0 = false)
char เป็นชนิดตัวแปรที่เป็นตัวแทนของ ตัวอักษรเพียงตัวเดียว อาจเป็นตัวอักษร ตัวเลข หรือตัวอักขระพิเศษ โดยปกติตัวแปรชนิดนี้จะใช้เนื้อที่เพียง 1 ไบต์ ซึ่งจะให้ตัวอักษรในรูปแบบที่แตกต่างกันได้ถึง 256 ค่า การเขียนรูปแบบของ char หลายๆ ตัว โดยปกติ จะอ้างอิงกับ American Standard Code for Information Interchange (ASCII)
ตัวอย่างของตัวแปรชนิด char ได้แก่ '+' 'A' 'a' '*' '7'
การกำหนดชนิดของตัวแปร สามารถเขียนได้อยู่ในรูป type identifier-list;
เมื่อ type บ่งบอกชนิดของตัวแปร ส่วน identifier-list เป็นการกำหนดชื่อของตัวแปร ซึ่งอาจจะมีมากกว่า 1 ตัวแปร และจะแยกตัวแปรแต่ละตัวออกจากกันด้วยเครื่องหมาย comma (,)
ในภาษา C หรือ C++ ได้มีกฏในการตั้งชื่อตัวแปรที่สามารถใช้งานได้ดังนี้
- ชื่อตัวแปรจะต้องขึ้นต้นด้วยตัวอักษร
- ชื่อตัวแปรจะประกอบไปด้วย ตัวอักษร ตัวแลข และ _ ได้เท่านั้น
- ชื่อตัวแปรจะต้องไม่ใช่ชื่อ reserved word (ชื่อที่มีการจองไว้แล้ว)
ตัวอย่างของชื่อตัวแปรที่สามารถนำมาใช้ตั้งชื่อได้ ได้แก่
length, days_in_year, DataSet1, Profit95, Pressure, first_one
และตัวอย่างของชื่อ ที่ไม่สามารถนำมาใช้เป็นชื่อตัวแปรได้ ยกตัวอย่างเช่น
day-in-year, 1data, int, first.val เป็นต้น
reserved word (ชื่อที่มีการจองไว้แล้ว)
Reserved words หรือตัวแปรที่ได้จองไว้แล้วนั้น จะประกอบไปด้วยตัวอักษรตัวเล็กทั้งหมด และจะมีความสำคัญสำหรับภาษา C++ และจะไม่นำมาใช้ด้วยวัตถุประสงค์อื่นๆ ตัวอย่างของ Reserved words ได้แก่ and, bool, break, case, catch, char, class, continue, default, delete, do, double, if , else, enum, export, extern เป็นต้น
นอกจากนี้ในภาษา C หรือ C++ ชื่อตัวแปร ที่ประกอบไปด้วยอักษรเล็ก หรือใหญ่ ก็มีความแตกต่างกัน หรือที่เรียกว่า Case sensitive ยกตัวอย่างเช่น
‘X’ และ ‘x’ เป็นตัวแปรต่างกัน
‘peter’ และ ‘Peter’ เป็นตัวแปรต่างกัน
‘bookno1’ และ ‘bookNo1’ เป็นตัวแปรต่างกัน
‘XTREME’ และ ‘xtreme’ เป็นตัวแปรต่างกัน
‘X1’ และ ‘x1’ เป็นตัวแปรต่างกัน
‘int’ และ ‘Int’ เป็นตัวแปรต่างกัน
การกำหนดชนิดของตัวแปร (Declaration of Variables)
ในภาษา C หรือ C++ (และโปรแกรมในภาษาอื่นๆ) ตัวแปรทุกตัวที่จะมีการเรียกใช้ในโปรแกรมจำเป็นต้องมีการกำหนดชนิดของตัวแปร นั้นๆ ก่อนที่จะทำการเรียกใช้ตัวแปร
การกำหนดชนิดของตัวแปรมีวัตถุประสงค์หลัก 2 ประการได้แก่
- เป็นการบอกชนิด และตั้งชื่อตัวแปรที่จะเรียกใช้ ชนิดของตัวแปรจะทำให้คอมไพเลอร์สามารถแปลคำสั่งได้อย่างถูกต้อง (ยกตัวอย่างเช่น ใน CPU คำสั่งที่ใช้ในการบวกตัวเลขจำนวนเต็ม 2 จำนวน ย่อมแตกต่างจากคำสั่งที่จะบวกจำนวนจริง 2 จำนวนเข้าด้วยกัน)
- ชนิดของตัวแปร ยังเป็นบ่งบอกคอมไพเลอร์ให้ทราบว่าจะต้องจัดเตรียมเนื้อที่ให้กับตัวแปรตัว นั้นมากน้อยเท่าใด และจะจัดวางตัวแปรนั้นไว้แอดเดรส (Address) ไหนที่สามารถเรียกมาใช้ใน code ได้
สำหรับในบทความนี้จะพิจารณาชนิดตัวแปร 4 ชนิดที่ใช้กันมากได้แก่ int, float, bool และ char
int ชนิดตัวแปรที่สามารถแทนค่าจำนวนเต็มได้ทั้งบวกและลบ โดยปกติสำหรับคอมพิวเตอร์ทั่วไป คอมไพเลอร์ จะจองเนื้อที่ 2 ไบต์ สำหรับตัวแปรชนิด int จึงทำให้ค่าของตัวแปรมีค่าตั้งแต่ -32768 ถึง +32768
ตัวอย่างของค่า int ได้แก่ 123 -56 0 5645 เป็นต้น
floatชนิดของตัวแปรที่เป็นตัวแทนของจำนวนจริง หรือตัวเลขที่มีค่าทศนิยม ความละเอียดของตัวเลขหลังจุดทศนิยมขึ้นอยู่กับระบบคอมพิวเตอร์ โดยปกติแล้ว ตัวแปรชนิด float จะใช้เนื้อที่ 4 ไบต์ นั่นคือจะให้ความละเอียดของตัวเลขหลังจุดทศนิยม 6 ตำแหน่ง และมีค่าอยู่ระหว่าง -1038 ถึง +1038
ตัวอย่างของค่า float ได้แก่ 16.315 -0.67 31.567
bool ชนิดของตัวแปรที่สามารถเก็บค่าลอจิก จริง (True) หรือ เท็จ (False) ตัวแปรชนิดนี้ เป็นที่รู้จักกันอีกชื่อคือ ตัวแปรบูลีน (Boolean)
ตัวอย่างของตัวแปรชนิด bool ได้แก่ 1 0 true false (เมื่อ 1 = true และ 0 = false)
char เป็นชนิดตัวแปรที่เป็นตัวแทนของ ตัวอักษรเพียงตัวเดียว อาจเป็นตัวอักษร ตัวเลข หรือตัวอักขระพิเศษ โดยปกติตัวแปรชนิดนี้จะใช้เนื้อที่เพียง 1 ไบต์ ซึ่งจะให้ตัวอักษรในรูปแบบที่แตกต่างกันได้ถึง 256 ค่า การเขียนรูปแบบของ char หลายๆ ตัว โดยปกติ จะอ้างอิงกับ American Standard Code for Information Interchange (ASCII)
ตัวอย่างของตัวแปรชนิด char ได้แก่ '+' 'A' 'a' '*' '7'
การกำหนดชนิดของตัวแปร สามารถเขียนได้อยู่ในรูป type identifier-list;
เมื่อ type บ่งบอกชนิดของตัวแปร ส่วน identifier-list เป็นการกำหนดชื่อของตัวแปร ซึ่งอาจจะมีมากกว่า 1 ตัวแปร และจะแยกตัวแปรแต่ละตัวออกจากกันด้วยเครื่องหมาย comma (,)
พื้นฐานภาษา c
1. พื้นฐานโปรแกรมภาษา C (Introduction to C Programming)
ก่อนอื่นของแนะนำพื้นฐานเกี่ยวกับคอมพิวเตอร์กันซักนิด ก่อนที่จะเริ่มเรียนรู้ภาษา C กัน หน่วยสำคัญที่สุดของคอมพิวเตอร์ก็คือ หน่วยประมวลผลหรือที่เรียกกันว่า CPU โดยปกติ CPU จะมีภาษาของตัวเองที่เรียกว่า ภาษาเครื่อง (Machine Language) ซึ่งจะเป็นภาษาที่ประกอบไปด้วยเลขฐานสองมากมาย ดังนั้นการที่จะเขียนโปรแกรมควบคุมการทำงานของคอมพิวเตอร์ โดยใช้ภาษาเครื่องโดยตรงนั้นจึงทำได้ยาก จึงได้มีการพัฒนาตัวแปรภาษาเครื่องที่เรียกว่า โปรแกรมภาษาระดับสูงขึ้นมา หรือที่เรียกว่า High Level Languages โดยภาษาในระดับสูงเหล่านี้ จะมีลักษณะรูปแบบการเขียน (Syntax) ที่ทำให้เข้าใจได้ง่ายต่อการสื่อสารกับผู้พัฒนา และถูกออกแบบมาให้ง่ายต่อการใช้งาน และจะเปลี่ยนคำสั่งจากผู้ใช้งาน ไปเป็นเป็นภาษาเครื่อง เพื่อที่จะควบคุมการทำงานของคอมพิวเตอร์ต่อไป ตัวอย่างของโปรแกรมภาษาระดับสูง ได้แก่ COBOL ใช้กันมากสำหรับโปรแกรมทางด้านธุรกิจ, Fortran ใช้กันมากสำหรับการพัฒนาโปรแกรมด้านวิทยาศาสตร์และวิศวกรรมศาสตร์ เพราะง่ายต่อการคำนวณ, Pascal มีใช้กันทั่วไป แต่เน้นสำหรับการพัฒนาเครื่องมือสำหรับการเรียนการสอน, C & C++ ใช้ทั่วไป ปัจจุบันมีผู้เลือกที่จะใช้กันอย่างแพร่หลาย, PROLOG เน้นหนักไปทางด้านงานประเภท AI และ JAVA ใช้ได้ทั่วไป ปัจจุบันเริ่มมีผู้หันมาสนใจกันมากและเพิ่มขึ้นอย่างรวดเร็ว
คราวนี้เราลองมาเตรียมตัวกันซักนิก ก่อนที่จะลงมือพัฒนาโปรแกรมคอมพิวเตอร์ ขั้นแรก เราต้องศึกษารูปแบบความต้องการของโปรแกรมที่จะพัฒนา จากนั้นก็วิเคราะห์ถึงปัญหาตลอดจนวิธีการแก้ปัญหา จากนั้นจึงนำเอาความคิดในการแก้ปัญหาอย่างเป็นขั้นตอน ไปเขียนในรูปแบบของโปรแกรมภาษาในระดับสูง ซึ่งจะอยู่ในรูปแบบของ Source Program หรือ Source Code จากนั้นเราก็จะใช้ Complier ของภาษาที่เราเลือก มาทำการ Compile Source code หรือกล่าวง่ายๆ คือแปลง Source code ของเราให้เป็นภาษาเครื่องนั่นเอง ซึ่งในขั้นตอนนี้ ผลที่ได้ เราจะเรียกว่า Object code จากนั้น Complier ก็จะทำการ Link หรือเชื่อม Object code เข้ากับฟังก์ชันการทำงานใน Libraries ต่างๆ ที่จำเป็นต่อการใช้งาน แล้วนำไปไว้ในหน่วยความจำ แล้วเราก็จะสามารถ Run เพื่อดูผลของการทำงานโปรแกรมได้ หากโปรแกรมมีข้อผิดพลาด เราก็จะทำการแก้ หรือที่เรียกกันในภาษาคอมพิวเตอร์ว่า การ Debug นั่นเอง
ภาษา C เป็นโปรแกรมภาษาระดับสูง ถูกพัฒนาขึ้นในปี 1972 ที่ AT&T Bell Lab เราสามารถใช้ภาษา C มาเขียนเป็นคำสั่งต่างๆ ที่คอมพิวเตอร์สามารถเข้าใจได้ และกลุ่มของคำสั่งเหล่านี้ เราก็เรียกกันว่า อัลกอริธึม ได้มีผู้ให้คำจำกัดความของคำว่า อัลกอริธึม ว่าเป็น “A precise description of a step-by-step process that is guaranteed to terminate after a finite number of steps with a correct answer for every particular instance of an algorithmic problem that may occur.” สำหรับ Compiler ภาษา C ที่มีในปัจจุบัน มี 2 ค่ายใหญ่ๆ ที่มีผู้คนสนใจใช้กันมากได้แก่ Microsoft และ Borland การใช้งาน Compiler ทั้งสองตัวนี้ สามารถเรียนรู้ได้ไม่ยากนัก เราจึงจะมาเริ่มต้นที่การเขียนโปรแกรมในภาษา C กันเลย เราลองมาเริ่มจากตัวอย่างการเขียน ภาษา C แบบ ง่ายๆ กันก่อนกับโปรแกรม Hello World
ก่อนอื่นของแนะนำพื้นฐานเกี่ยวกับคอมพิวเตอร์กันซักนิด ก่อนที่จะเริ่มเรียนรู้ภาษา C กัน หน่วยสำคัญที่สุดของคอมพิวเตอร์ก็คือ หน่วยประมวลผลหรือที่เรียกกันว่า CPU โดยปกติ CPU จะมีภาษาของตัวเองที่เรียกว่า ภาษาเครื่อง (Machine Language) ซึ่งจะเป็นภาษาที่ประกอบไปด้วยเลขฐานสองมากมาย ดังนั้นการที่จะเขียนโปรแกรมควบคุมการทำงานของคอมพิวเตอร์ โดยใช้ภาษาเครื่องโดยตรงนั้นจึงทำได้ยาก จึงได้มีการพัฒนาตัวแปรภาษาเครื่องที่เรียกว่า โปรแกรมภาษาระดับสูงขึ้นมา หรือที่เรียกว่า High Level Languages โดยภาษาในระดับสูงเหล่านี้ จะมีลักษณะรูปแบบการเขียน (Syntax) ที่ทำให้เข้าใจได้ง่ายต่อการสื่อสารกับผู้พัฒนา และถูกออกแบบมาให้ง่ายต่อการใช้งาน และจะเปลี่ยนคำสั่งจากผู้ใช้งาน ไปเป็นเป็นภาษาเครื่อง เพื่อที่จะควบคุมการทำงานของคอมพิวเตอร์ต่อไป ตัวอย่างของโปรแกรมภาษาระดับสูง ได้แก่ COBOL ใช้กันมากสำหรับโปรแกรมทางด้านธุรกิจ, Fortran ใช้กันมากสำหรับการพัฒนาโปรแกรมด้านวิทยาศาสตร์และวิศวกรรมศาสตร์ เพราะง่ายต่อการคำนวณ, Pascal มีใช้กันทั่วไป แต่เน้นสำหรับการพัฒนาเครื่องมือสำหรับการเรียนการสอน, C & C++ ใช้ทั่วไป ปัจจุบันมีผู้เลือกที่จะใช้กันอย่างแพร่หลาย, PROLOG เน้นหนักไปทางด้านงานประเภท AI และ JAVA ใช้ได้ทั่วไป ปัจจุบันเริ่มมีผู้หันมาสนใจกันมากและเพิ่มขึ้นอย่างรวดเร็ว
คราวนี้เราลองมาเตรียมตัวกันซักนิก ก่อนที่จะลงมือพัฒนาโปรแกรมคอมพิวเตอร์ ขั้นแรก เราต้องศึกษารูปแบบความต้องการของโปรแกรมที่จะพัฒนา จากนั้นก็วิเคราะห์ถึงปัญหาตลอดจนวิธีการแก้ปัญหา จากนั้นจึงนำเอาความคิดในการแก้ปัญหาอย่างเป็นขั้นตอน ไปเขียนในรูปแบบของโปรแกรมภาษาในระดับสูง ซึ่งจะอยู่ในรูปแบบของ Source Program หรือ Source Code จากนั้นเราก็จะใช้ Complier ของภาษาที่เราเลือก มาทำการ Compile Source code หรือกล่าวง่ายๆ คือแปลง Source code ของเราให้เป็นภาษาเครื่องนั่นเอง ซึ่งในขั้นตอนนี้ ผลที่ได้ เราจะเรียกว่า Object code จากนั้น Complier ก็จะทำการ Link หรือเชื่อม Object code เข้ากับฟังก์ชันการทำงานใน Libraries ต่างๆ ที่จำเป็นต่อการใช้งาน แล้วนำไปไว้ในหน่วยความจำ แล้วเราก็จะสามารถ Run เพื่อดูผลของการทำงานโปรแกรมได้ หากโปรแกรมมีข้อผิดพลาด เราก็จะทำการแก้ หรือที่เรียกกันในภาษาคอมพิวเตอร์ว่า การ Debug นั่นเอง
ภาษา C เป็นโปรแกรมภาษาระดับสูง ถูกพัฒนาขึ้นในปี 1972 ที่ AT&T Bell Lab เราสามารถใช้ภาษา C มาเขียนเป็นคำสั่งต่างๆ ที่คอมพิวเตอร์สามารถเข้าใจได้ และกลุ่มของคำสั่งเหล่านี้ เราก็เรียกกันว่า อัลกอริธึม ได้มีผู้ให้คำจำกัดความของคำว่า อัลกอริธึม ว่าเป็น “A precise description of a step-by-step process that is guaranteed to terminate after a finite number of steps with a correct answer for every particular instance of an algorithmic problem that may occur.” สำหรับ Compiler ภาษา C ที่มีในปัจจุบัน มี 2 ค่ายใหญ่ๆ ที่มีผู้คนสนใจใช้กันมากได้แก่ Microsoft และ Borland การใช้งาน Compiler ทั้งสองตัวนี้ สามารถเรียนรู้ได้ไม่ยากนัก เราจึงจะมาเริ่มต้นที่การเขียนโปรแกรมในภาษา C กันเลย เราลองมาเริ่มจากตัวอย่างการเขียน ภาษา C แบบ ง่ายๆ กันก่อนกับโปรแกรม Hello World
ระบบเลขฐาน
1. ระบบเลขฐานต่าง ๆ
ตัวเลขที่มีจำนวน 2 จำนวน (2 ค่า) เรียกว่าระบบเลขฐานสอง (Binary Number System) ซึ่งเป็นระบบตัวเลขที่สามารถนำมาใช้ในการสั่งงานคอมพิวเตอร์ โดยการแทนที่สภาวะต่างๆ ของกระแสไฟฟ้า แต่ในชีวิตประจำวันของคนเราจะคุ้นเคยกับตัวเลขที่มีจำนวน 10 จำนวน คือ เลข 0 - 9 ซึ่งเรียกว่าระบบเลขฐานสิบ (Decimal Number System) ดังนั้นจึงมีความจำเป็นต้องศึกษาระบบเลขฐาน ประกอบการศึกษาวิชาด้านคอมพิวเตอร์ เพื่อความเข้าใจพื้นฐานการทำงานของเครื่องคอมพิวเตอร์
ระบบจำนวนที่ใช้ในทางคอมพิวเตอร์
ประกอบด้วย
ระบบเลขฐานสอง (Binary) ประกอบด้วยตัวเลข 0 และ 1
ระบบเลขฐานแปด (Octal) ประกอบด้วยตัวเลข 0 - 7
ระบบเลขฐานสิบ (Decimal) ประกอบด้วยตัวเลข 0 - 9
ระบบเลขฐานสิบหก (Hexadecimal) ประกอบด้วยตัว เลข 0 - 9 และ A - F
2. ระบบเลขฐานสิบ (Decimal Number System)
ระบบเลขฐานสิบ เป็นระบบเลขที่ใช้กันในชีวิตประจำวัน ไม่ว่าจะนำไปใช้คำนวณประเภทใด โดยจะมีสัญลักษณ์ที่ใช้แทนตัวเลขต่างๆ ของเลขฐานสิบ (Symbol) จำนวน 10 ตัว ตัวเลขหรือที่เรียกว่า Digit ที่ใช้แทนระบบเลขฐานสิบ ได้แก่ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
ตัวเลขแต่ละตัวจะมีค่าประจำตัว โดยกำหนดให้ค่าที่น้อยที่สุด คือ 0 (ศูนย์) และเพิ่มค่าทีละหนึ่ง จนครบจำนวน 10 ตัว ดังนั้นค่ามากที่สุด คือ 9 การนำตัวเลขเหล่านี้ มารวมกลุ่มกัน ทำให้เกิดความหมายเป็น "ค่า" นั้น อาศัยวิธีการกำหนด "หลัก" ของตัวเลข (Position Notation) กล่าวคือ ค่าของตัวเลขจำนวนหนึ่ง พิจารณาได้จากสองสิ่งคือ
- ค่าประจำตัวของตัวเลขแต่ละตัว
- ค่าหลักในตำแหน่งที่ตัวเลขนั้นปรากฎอยู่
ในระบบที่ว่าด้วยตำแหน่งของตัวเลข ตำแหน่งที่อยู่ทางขวาสุด จะเป็นหลักที่มีค่าน้อยที่สุด เรียกว่า Least Sinificant Digit (LSD) และตัวเลขที่อยู่ในหลักซ้ายสุดจะมีค่ามากที่สุด เรียกว่า Most Sinificant Digit (MSD)
ตัวอย่าง
นิยาม ค่าหลักของตัวเลขใดๆ คือ ค่าของฐานยกกำลังด้วยค่าประจำตำแหน่งของแต่ละหลัก โดยกำหนดให้ค่าประจำตำแหน่งของหลักของ LSD มีค่าเป็น 0
ในระบบเลขฐานสิบ จะมีสัญลักษณ์อยู่ 10 อย่าง คือ 0 - 9 จำนวนขนาดของเลขฐานสิบ สามารถอธิบายได้ โดยใช้ตำแหน่งน้ำหนักของแต่ละหลัก (Postional Weight) โดยพิจารณาจากเลข ดังต่อไปนี้
ค่าตัวเลข 4,897 สามารถขยายได้ดังนี้
4,897
= 4000 + 800 + 90 + 7
= (4 x 103) + (8 x 102) + (9 x 101) + (7 x 100)
จะเห็นว่าน้ำหนักตามตำแหน่ง ของตัวเลขต่างๆ สามารถขยายตามระบบจำนวนได้ และถูกแทนที่ด้วยสมการ ดังต่อไปนี้
N = dnRn + ... + d3R3 + d2R2 + D1R1 + D0R0
เมื่อ
N คือ ค่าของจำนวนฐานสิบที่ต้องการ
dn คือ ตัวเลขที่อยู่ในตำแหน่งต่างๆ
R คือ ฐานของจำนวนตัวเลขนั้นๆ
n คือ ค่ายกกำลังของฐานตามตำแหน่งต่างๆ
เลขที่เป็นเศษส่วน หรือจำนวนผสมนั้น ก็สามารถจะเขียนในรูป Positional Notation ได้เช่นกัน โดยตัวเลขแต่ละหลักที่อยู่ในตำแหน่งหลังจุดทศนิยมนั้นกำลังของหลักจะมีค่า เป็นลบ โดนเริ่มจากลบ 1 เป็นต้นไป นับจากน้อยไปหามาก
ดังนั้นในระบบเลขฐานสิบ หลักแรกหลังจุดทศนิยมจะมีค่าเท่ากับ เลขจำนวนนั้นคูณด้วย 10-1 ตัวที่สองจะเป็น 10-2 ไปเรื่อยๆ เช่น
123.456 =1 x 102 + 2 x 101 + 3 x 100+4 x 10-1+5 x 10-2+6 x 10-3
กฎการแทนตัวเลขนั้น สามารถนำไปใช้กับระบบตัวเลขทั่วๆ ไปได้ โดยไม่คำนึงว่า เลขนั้นจะเป็นฐานอะไร
3. ระบบเลขฐานสอง
ระบบเลขฐานสอง มีสัญลักษณ์ที่ใช้เพียงสองตัว คือ 0 และ 1 ถ้าเปรียบเทียบเลขฐานสอง กับเลขฐานสิบแล้ว ค่าของหลักที่ถัดจากหลักที่น้อยที่สุด (LSD) ขึ้นไป จะมีค่าเท่ากับ ฐานสองยกกำลังหมายเลขหลัก แทนที่จะเป็น 10 ยกกำลัง ดังนี้
ระบบเลขฐานสองเกิดจากการใช้ตัวเลขเพียง 2 ตัว คือ 0 และ 1 ดังนั้น สมการคือ
N = dnRn + ... + d3R3 + d2R2 + D1R1 + D0R0
เมื่อ d คือค่า 0 หรือ 1
เช่น 1101 = (1 x 23) + (1 x 22) + (0 x 21) + (1 x 20)
เพื่อตัดปัญหายุ่งยาก ในการแทนค่าของเลขระบบต่างๆ เรานิยมเขียน ตัวเลขอยู่ในวงเล็บ และเขียนค่าของฐานนั้น อยู่นอกวงเล็บ
เช่น (101101)2 = (45)10
สำหรับเศษส่วน จะเขียนค่าของเศษส่วนอยู่หลังจุด (Binary Point) ยกกำลังเป็นลบ เพิ่มขึ้นตามลำดับ ดังตัวอย่าง
(0.1011)2 = (1 x 2-1) + (0 x 2-2) + (1 x 2-3) + (1 x 2-4)
4. การแปลงเลขฐานสองเป็นเลขฐานสิบ
การแปลงเลขฐานสองเป็นเลขฐานสิบ มีหลายวิธี แต่ที่จะแนะนำคือ การกระจายค่าประจำหลัก จากนั้นนำมาบวกรวมกันอีกครั้ง ผลลัพธ์ที่ได้จะเท่ากับค่าในเลขฐานสิบ
ตัวอย่างที่1 (110111)2 มีค่าเท่ากับเท่าไรในระบบเลขฐานสิบ
วิธีทำ
N = (1 x 25) + (1 x 24) + (0 x 23) + (1 x 22) + (1 x 21) + (1 x 20)
= 32 + 16 + 0 +4 + 2 + 1
1101112 = 5510
การแปลงเลขฐานสอง เป็นเลขฐานสิบ วิธีที่สอง คือ Dibble Dobble Method โดย การนำเอาเลขหลักซ้ายสุด มาวางไว้ แล้วคูณด้วย 2 จากนั้นบวกด้วยเลขบิทที่อยู่ ทางขวามือ จากนั้นนำผลลัพธ์ มาคูณด้วย 2 บอกด้วยเลขบิทต่อไป ดังนี้
เช่น ต้องการแปลง (110111)2 เป็นเลขฐานสิบ
บิทซ้ายสุด คือ 1
คูณด้วย 2 และบวกบิทถัดไป (2 x 1) + 1 = 3
คูณด้วย 2 และบวกบิทถัดไป (2 x 3) + 0 = 6
คูณด้วย 2 และบวกบิทถัดไป (2 x 6) + 1 = 13
คูณด้วย 2 และบวกบิทถัดไป (2 x 13) + 1 = 27
คูณด้วย 2 และบวกบิทถัดไป (2 x 27) + 1 = 55
ดังนั้น 1101112 = 5510
5. การแปลงเลขฐานสิบเป็นฐานสอง
การแปลงเลขฐานสิบเป็นเลขฐานสองก็มีหลายวิธี แต่ที่จะแนะนำคือ การหารด้วย 2 แล้วจดค่าเศษจากการหารไว้ จนกระทั่งหารไม่ได้อีกแล้ว หรือการหารสั้น จากนั้นนำเศษจากการหารแต่ละครั้ง มาไล่ลำดับจากล่างขึ้นไปหาค่าบนสุด ผลลัพธ์ที่ได้จะเท่ากับค่าในเลขฐานสอง
ตัวอย่างที่ 2 (29)10 มีค่าเท่ากับเท่าไรในระบบเลขฐานสอง
การแปลงเลขหลังทศนิยม (เศษส่วน) ฐานสิบ (Fractional Decimal Numbers) ให้เป็นฐานสอง
การเปลี่ยนเลขหลังทศนิยมฐานสิบ ให้เป็นฐานสอง จะใช้วิธีการนำค่าเลขหลังทศนิยมตั้ง แล้วคูณด้วยสอง จากนั้นนำผลลัพธ์ที่ได้เป็นตัวตั้งในการคูณครั้งต่อไป จนกว่าค่าผลลัพธ์ส่วนที่เป็น เลขหลังทศนิยมเท่ากับ .00 กรณีที่คูณแล้วไม่ลงตัวเท่ากับ .00 ก็ให้คูณจนได้ค่าที่ต้องการ สุดท้ายนำค่าตัวเลขก่อนทศนิยม จากผลลัพธ์แต่ละครั้ง มาเขียนเรียงต่อกัน ก็จะได้ค่าฐานสองที่ต้องการ ดังตัวอย่าง
ตัวอย่าง ต้องการแปลงเลข (0.65625)10 เป็นเลขฐานสอง
พิจารณาทีละจุด
นำ 0.65625 คูณด้วย 2 ได้ค่าเท่ากับ 1.31250
ดังนั้นเลขทศนิยมฐานสิบ 0.65625 จะเท่ากับ 0.10101 ในฐานสอง
ตัวเลขที่มีจำนวน 2 จำนวน (2 ค่า) เรียกว่าระบบเลขฐานสอง (Binary Number System) ซึ่งเป็นระบบตัวเลขที่สามารถนำมาใช้ในการสั่งงานคอมพิวเตอร์ โดยการแทนที่สภาวะต่างๆ ของกระแสไฟฟ้า แต่ในชีวิตประจำวันของคนเราจะคุ้นเคยกับตัวเลขที่มีจำนวน 10 จำนวน คือ เลข 0 - 9 ซึ่งเรียกว่าระบบเลขฐานสิบ (Decimal Number System) ดังนั้นจึงมีความจำเป็นต้องศึกษาระบบเลขฐาน ประกอบการศึกษาวิชาด้านคอมพิวเตอร์ เพื่อความเข้าใจพื้นฐานการทำงานของเครื่องคอมพิวเตอร์
ระบบจำนวนที่ใช้ในทางคอมพิวเตอร์
ประกอบด้วย
ระบบเลขฐานสอง (Binary) ประกอบด้วยตัวเลข 0 และ 1
ระบบเลขฐานแปด (Octal) ประกอบด้วยตัวเลข 0 - 7
ระบบเลขฐานสิบ (Decimal) ประกอบด้วยตัวเลข 0 - 9
ระบบเลขฐานสิบหก (Hexadecimal) ประกอบด้วยตัว เลข 0 - 9 และ A - F
| ระบบจำนวน |
จำนวนหลัก (Digit)
|
|||||||||||||||
| เลขฐานสอง |
0
|
1
|
||||||||||||||
| เลขฐานแปด |
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
||||||||
| เลขฐานสิบ |
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
||||||
| เลขฐานสิบหก |
0
|
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
A
|
B
|
C
|
D
|
E
|
F
|
2. ระบบเลขฐานสิบ (Decimal Number System)
ระบบเลขฐานสิบ เป็นระบบเลขที่ใช้กันในชีวิตประจำวัน ไม่ว่าจะนำไปใช้คำนวณประเภทใด โดยจะมีสัญลักษณ์ที่ใช้แทนตัวเลขต่างๆ ของเลขฐานสิบ (Symbol) จำนวน 10 ตัว ตัวเลขหรือที่เรียกว่า Digit ที่ใช้แทนระบบเลขฐานสิบ ได้แก่ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
ตัวเลขแต่ละตัวจะมีค่าประจำตัว โดยกำหนดให้ค่าที่น้อยที่สุด คือ 0 (ศูนย์) และเพิ่มค่าทีละหนึ่ง จนครบจำนวน 10 ตัว ดังนั้นค่ามากที่สุด คือ 9 การนำตัวเลขเหล่านี้ มารวมกลุ่มกัน ทำให้เกิดความหมายเป็น "ค่า" นั้น อาศัยวิธีการกำหนด "หลัก" ของตัวเลข (Position Notation) กล่าวคือ ค่าของตัวเลขจำนวนหนึ่ง พิจารณาได้จากสองสิ่งคือ
- ค่าประจำตัวของตัวเลขแต่ละตัว
- ค่าหลักในตำแหน่งที่ตัวเลขนั้นปรากฎอยู่
ในระบบที่ว่าด้วยตำแหน่งของตัวเลข ตำแหน่งที่อยู่ทางขวาสุด จะเป็นหลักที่มีค่าน้อยที่สุด เรียกว่า Least Sinificant Digit (LSD) และตัวเลขที่อยู่ในหลักซ้ายสุดจะมีค่ามากที่สุด เรียกว่า Most Sinificant Digit (MSD)
ตัวอย่าง
จำนวน 1,897
|
|||
Most Sinificant Digit (MSD)
|
Least Sinificant Digit (LSD)
|
||
1
|
8
|
9
|
7
|
นิยาม ค่าหลักของตัวเลขใดๆ คือ ค่าของฐานยกกำลังด้วยค่าประจำตำแหน่งของแต่ละหลัก โดยกำหนดให้ค่าประจำตำแหน่งของหลักของ LSD มีค่าเป็น 0
ในระบบเลขฐานสิบ จะมีสัญลักษณ์อยู่ 10 อย่าง คือ 0 - 9 จำนวนขนาดของเลขฐานสิบ สามารถอธิบายได้ โดยใช้ตำแหน่งน้ำหนักของแต่ละหลัก (Postional Weight) โดยพิจารณาจากเลข ดังต่อไปนี้
ค่าตัวเลข 4,897 สามารถขยายได้ดังนี้
4,897
= 4000 + 800 + 90 + 7
= (4 x 103) + (8 x 102) + (9 x 101) + (7 x 100)
จะเห็นว่าน้ำหนักตามตำแหน่ง ของตัวเลขต่างๆ สามารถขยายตามระบบจำนวนได้ และถูกแทนที่ด้วยสมการ ดังต่อไปนี้
N = dnRn + ... + d3R3 + d2R2 + D1R1 + D0R0
เมื่อ
N คือ ค่าของจำนวนฐานสิบที่ต้องการ
dn คือ ตัวเลขที่อยู่ในตำแหน่งต่างๆ
R คือ ฐานของจำนวนตัวเลขนั้นๆ
n คือ ค่ายกกำลังของฐานตามตำแหน่งต่างๆ
เลขที่เป็นเศษส่วน หรือจำนวนผสมนั้น ก็สามารถจะเขียนในรูป Positional Notation ได้เช่นกัน โดยตัวเลขแต่ละหลักที่อยู่ในตำแหน่งหลังจุดทศนิยมนั้นกำลังของหลักจะมีค่า เป็นลบ โดนเริ่มจากลบ 1 เป็นต้นไป นับจากน้อยไปหามาก
ดังนั้นในระบบเลขฐานสิบ หลักแรกหลังจุดทศนิยมจะมีค่าเท่ากับ เลขจำนวนนั้นคูณด้วย 10-1 ตัวที่สองจะเป็น 10-2 ไปเรื่อยๆ เช่น
123.456 =1 x 102 + 2 x 101 + 3 x 100+4 x 10-1+5 x 10-2+6 x 10-3
กฎการแทนตัวเลขนั้น สามารถนำไปใช้กับระบบตัวเลขทั่วๆ ไปได้ โดยไม่คำนึงว่า เลขนั้นจะเป็นฐานอะไร
3. ระบบเลขฐานสอง
ระบบเลขฐานสอง มีสัญลักษณ์ที่ใช้เพียงสองตัว คือ 0 และ 1 ถ้าเปรียบเทียบเลขฐานสอง กับเลขฐานสิบแล้ว ค่าของหลักที่ถัดจากหลักที่น้อยที่สุด (LSD) ขึ้นไป จะมีค่าเท่ากับ ฐานสองยกกำลังหมายเลขหลัก แทนที่จะเป็น 10 ยกกำลัง ดังนี้
| เลขฐานสิบ | เลขฐานสอง | |||||
| 100 | 1 | หน่วย | 20 | 1 | หนึ่ง | |
| 101 | 10 | สิบ | 21 | 2 | สอง | |
| 102 | 100 | ร้อย | 22 | 4 | สี่ | |
| 103 | 1000 | พัน | 23 | 8 | แปด | |
| 104 | 10000 | หมื่น | 24 | 16 | สิบหก | |
| 105 | 100000 | แสน | 25 | 32 | สามสิยสอง |
N = dnRn + ... + d3R3 + d2R2 + D1R1 + D0R0
เมื่อ d คือค่า 0 หรือ 1
เช่น 1101 = (1 x 23) + (1 x 22) + (0 x 21) + (1 x 20)
เพื่อตัดปัญหายุ่งยาก ในการแทนค่าของเลขระบบต่างๆ เรานิยมเขียน ตัวเลขอยู่ในวงเล็บ และเขียนค่าของฐานนั้น อยู่นอกวงเล็บ
เช่น (101101)2 = (45)10
สำหรับเศษส่วน จะเขียนค่าของเศษส่วนอยู่หลังจุด (Binary Point) ยกกำลังเป็นลบ เพิ่มขึ้นตามลำดับ ดังตัวอย่าง
(0.1011)2 = (1 x 2-1) + (0 x 2-2) + (1 x 2-3) + (1 x 2-4)
4. การแปลงเลขฐานสองเป็นเลขฐานสิบ
การแปลงเลขฐานสองเป็นเลขฐานสิบ มีหลายวิธี แต่ที่จะแนะนำคือ การกระจายค่าประจำหลัก จากนั้นนำมาบวกรวมกันอีกครั้ง ผลลัพธ์ที่ได้จะเท่ากับค่าในเลขฐานสิบ
ตัวอย่างที่1 (110111)2 มีค่าเท่ากับเท่าไรในระบบเลขฐานสิบ
วิธีทำ
N = (1 x 25) + (1 x 24) + (0 x 23) + (1 x 22) + (1 x 21) + (1 x 20)
= 32 + 16 + 0 +4 + 2 + 1
1101112 = 5510
การแปลงเลขฐานสอง เป็นเลขฐานสิบ วิธีที่สอง คือ Dibble Dobble Method โดย การนำเอาเลขหลักซ้ายสุด มาวางไว้ แล้วคูณด้วย 2 จากนั้นบวกด้วยเลขบิทที่อยู่ ทางขวามือ จากนั้นนำผลลัพธ์ มาคูณด้วย 2 บอกด้วยเลขบิทต่อไป ดังนี้
เช่น ต้องการแปลง (110111)2 เป็นเลขฐานสิบ
บิทซ้ายสุด คือ 1
คูณด้วย 2 และบวกบิทถัดไป (2 x 1) + 1 = 3
คูณด้วย 2 และบวกบิทถัดไป (2 x 3) + 0 = 6
คูณด้วย 2 และบวกบิทถัดไป (2 x 6) + 1 = 13
คูณด้วย 2 และบวกบิทถัดไป (2 x 13) + 1 = 27
คูณด้วย 2 และบวกบิทถัดไป (2 x 27) + 1 = 55
ดังนั้น 1101112 = 5510
5. การแปลงเลขฐานสิบเป็นฐานสอง
การแปลงเลขฐานสิบเป็นเลขฐานสองก็มีหลายวิธี แต่ที่จะแนะนำคือ การหารด้วย 2 แล้วจดค่าเศษจากการหารไว้ จนกระทั่งหารไม่ได้อีกแล้ว หรือการหารสั้น จากนั้นนำเศษจากการหารแต่ละครั้ง มาไล่ลำดับจากล่างขึ้นไปหาค่าบนสุด ผลลัพธ์ที่ได้จะเท่ากับค่าในเลขฐานสอง
ตัวอย่างที่ 2 (29)10 มีค่าเท่ากับเท่าไรในระบบเลขฐานสอง
การเปลี่ยนเลขหลังทศนิยมฐานสิบ ให้เป็นฐานสอง จะใช้วิธีการนำค่าเลขหลังทศนิยมตั้ง แล้วคูณด้วยสอง จากนั้นนำผลลัพธ์ที่ได้เป็นตัวตั้งในการคูณครั้งต่อไป จนกว่าค่าผลลัพธ์ส่วนที่เป็น เลขหลังทศนิยมเท่ากับ .00 กรณีที่คูณแล้วไม่ลงตัวเท่ากับ .00 ก็ให้คูณจนได้ค่าที่ต้องการ สุดท้ายนำค่าตัวเลขก่อนทศนิยม จากผลลัพธ์แต่ละครั้ง มาเขียนเรียงต่อกัน ก็จะได้ค่าฐานสองที่ต้องการ ดังตัวอย่าง
ตัวอย่าง ต้องการแปลงเลข (0.65625)10 เป็นเลขฐานสอง
พิจารณาทีละจุด
นำ 0.65625 คูณด้วย 2 ได้ค่าเท่ากับ 1.31250
- ค่า 1 (เลขก่อนทศนิยม) จะเป็นค่าหลักแรกของค่าเลขฐานสอง
- นำ .31250 (เลขหลังทศนิยม) ไปเป็นตัวตั้งในการคูณครั้งถัดไป
- ค่า 0 (เลขก่อนทศนิยม) จะเป็นค่าหลักที่สองของค่าเลขฐานสอง
- นำ .62500 (เลขหลังทศนิยม) ไปเป็นตัวตั้งในการคูณครั้งถัดไป
- ค่า 1 (เลขก่อนทศนิยม) จะเป็นค่าหลักที่สามของค่าเลขฐานสอง
- นำ .25000 (เลขหลังทศนิยม) ไปเป็นตัวตั้งในการคูณครั้งถัดไป
- ค่า 0 (เลขก่อนทศนิยม) จะเป็นค่าหลักที่สี่ของค่าเลขฐานสอง
- นำ .50000 (เลขหลังทศนิยม) ไปเป็นตัวตั้งในการคูณครั้งถัดไป
- ค่า 1 (เลขก่อนทศนิยม) จะเป็นค่าหลักที่ห้าของค่าเลขฐานสอง
- เนื่องจากเลขหลังทศนิยมเท่ากับ .00000 จึงไม่ต้องคูณต่อ
ดังนั้นเลขทศนิยมฐานสิบ 0.65625 จะเท่ากับ 0.10101 ในฐานสอง
สมัครสมาชิก:
บทความ (Atom)