คอมพิวเตอร์จะเข้าใจเพียงภาษาที่เป็นเลขฐานสองเท่านั้น เช่น 10101111010 อาจเป็นคำสั่งที่ใช้สำหรับแสดงผล คำสั่งพวกนี้เป็นเสมือนลิสรายการที่คอมพิวเตอร์จะต้องทำ มนุษย์เป็นเพียงผู้ป้อนคำสั่งเข้าไปๆเท่านั้น ซึ่งภาษาเลขฐานสองสำหรับมนุษย์แล้วเป็นเรื่องยากมากที่จะทำความเข้าใจ เอาง่ายๆเลยก็ต้องท่องจำกันไป(กว่าจะจำหมดคงเวียนว่ายตายเกิดหลายชั่วอายุคน) ซึ่งไม่จำเป็นเอาเสียเลยที่จะต้องมาลำบากเพื่อให้ได้ผลออกมาน้อยนิด จริงไหมครับ จึงเป็นสาเหตุให้ Compiler ถือกำเนิดขึ้นมาเพื่ออำนวยความสะดวกตรงจุดนี้ครับ แหะๆ ถ้าเปรียบ Compiler กับมนุษย์แล้ว Compiler เปรียบเสมือนล่ามดีๆนี่เอง แต่เป็นล่ามที่เข้าใจภาษาคอมพิวเตอร์นะ เพราะเราจะเขียนภาษาที่มนุษย์อย่างเราๆเข้าใจใส่เข้าไป จากนั้นเจ้า Compiler เนี่ยจะแปลภาษาของเราไปเป็นภาษาเครื่องโดยอัตโนมัติ โดยที่เราไม่ต้องไปสนิทคบค้ากับภาษาเลขฐานสองอีกต่อไป
(ภาษาเลขฐานสอง = ภาษาเครื่อง) นี่เป็นอีกสาเหตุให้วงการโปรแกรมมิ่งบูมมากๆในปัจจุบัน เพราะ Compiler ในปัจจุบันถือเป็นสุดยอดของความสะดวกแล้ว เพราะผมยังเคยคิดว่าการเขียนโปรแกรมนี่เป็นอะไรที่ยากมากนะ แต่ลองนึกย้อนไป คนสมัยก่อนเค้าต้องเขียนโดยใช้ภาษาเลขฐานสองมันลำบากกว่าแค่ไหนไม่มีตัวช่วยไม่มีอะไรเลย
สำหรับ Compiler ก็จะมีชนิดของมันต่างๆกันนะครับ มีหลายภาษา ก็เหมือนกับที่เคยๆได้ยินกันน่ะครับ ภาษา C บ้าง ภาษา Java บ้าง ภาษา PHP เอย ว่ากันไป ซึ่งหน้าที่ Compiler จะไม่ต่างกันแต่ต่างกันตรงที่ "ไวยากรณ์" อะอ้าวว ฟังดูแล้วอาจจะเข้าใจขึ้น เช่น การเอ่ยทักทายของภาษาแต่ละภาษาก็ต่างกัน ไทย(สวัสดี) อังกฤษ(Hello) อะไรประมาณนี้ กล่าวได้ว่า ถ้าเราชำนาญสักภาษาใดภาษาหนึ่งแล้ว ภาษาอืนๆก็ไม่ใช่เรื่องยาก(เอ้าก็พูดพร่ำทำเพลงเป็นแล้วนี่) เพียงแต่ต้องศึกษาไวยากรณ์ให้ดีๆ เท่านั้นเองครับ
For Newbie Programmer with C# Language.... มาเรียนเขียนโปรแกรมภาษา C# เบื้องต้นกันเถอะ ที่นี่จะทำให้มุมมองของการโปรแกรมมิ่งของคุณเปลี่ยนไป
วันอาทิตย์ที่ 10 พฤษภาคม พ.ศ. 2552
Radix Converter My First WindowForm ... !!!
(อ่านตรงนี้ไม่เสียเวลารับประกัน ได้อะไรติดหัวไปฟรีๆเลยจ้า...)
โปรแกรมแรกของโอ๊คใน WindowForm ครับใช้เวลาเขียนค่อนข้างนานพอดูนะ เพราะว่าเป็นครั้งแรก รูปร่างหน้าตาอาจธรรมดาไปหน่อยแต่รับประกันคุณภาพ แหะๆ เป็นโปรแกรมแปลงเลขฐานครับ เอ้าสำหรับคนที่ไม่รู้จักระบบเลขฐาน ก็ไม่เป็นเรา จะพูดถึงให้ฟังกันครับ ในเรื่องของระบบเลขฐาน (Radix Number)
ระบบเลขฐานนิยามให้เข้าใจค่อนข้างยาก แต่จะลองดูนะ ก็คือ การรวมกันของจำนวนที่มีค่าประจำแต่ละตำแหน่งโดยค่าประจำตำแหน่งก็จะเป็นค่าของเลขฐานนั้น เอ้างง ไม่เป็นไร ต้องบอกไว้ก่อนว่า เลขฐานที่เราคุ้นเคยกันในชีวิตประจำวันนั่นก็คือ เลขฐานสิบ ที่ประกอบไปด้วย เลข 0-9 นั่นล่ะ ความสัมพันธ์กันของเลขฐานแต่ละชนิดก็มีนะ เช่น 5ในเลขฐานสิบ ถ้าอยู่ในระบบเลขฐานสอง ก็คือ 0101 สำหรับคนไม่เข้าใจจริงๆไม่ต้องห่วงมาอ่านบทความนี้ได้อะไรติดหัวไปแน่นอน เอ้า ไอ้เจ้า 5 มันเป็น 0101 ในเลขฐานสองได้อย่างไร พูดในเรื่องความสัมพันธ์กันระหว่างระบบเลขฐานสิบกับเลขฐานสองนะ 5 = (0x2^3)+(1x2^2)+(0x2^1)+(1x2^0) ลองคิดเลขยกกำลังเล่นๆดู เป็น 5 ไหมครับ ? ใช่แล้วครับเลขชี้กำลังเริ่มจากทางขวามา(และเริ่มที่ 0)และเพิ่มจำนวนขึ้นทีละ1 ไปทางซ้ายจนกว่าจะหมด และที่ฐานของเลขชี้กำลังเป็น2 ก็เพราะว่าเป็นเลขฐานสอง และในแง่เดียวกันก็คือเลขฐานอื่นๆก็แค่เปลี่ยนฐานของเลขชี้กำลังเท่านั้นเองครับ (ฐานอื่นๆก็เช่น ฐานแปด ฐานสิบหก)แล้วจะมีไอ้ระบบเลขฐานวุ่นวายไปทำไม ? คำถามนี้โอ๊คเคยถามตัวเองอยู่เหมือนกันตอนนั่งทำความเข้าใจกับมันน่ะนะ คอมพิวเตอร์ของเราก็ใช้ประโยชน์จากเลขฐานนี้ครับ นั่นคือเลขฐานสอง ทำไมถึงเลขฐานสองน่ะหรอ ก็เพราะว่าคอมพิวเตอร์ก็ไม่ได้ต่างไปจากอุปกรณ์ไฟฟ้าตัวอื่นๆเท่าใดนักที่จะต้องมีสวิตท์ เปิด ปิด เหมือนกับเลขฐานสองที่มี 1(เปิด)กับ 0(ปิด)นั่นแหละครับ แล้วมันใช้ยังไงเอาคร่าวๆให้ฟังกัน ใช้ในด้านการคำนวณ การเก็บข้อมูล และอีกมาก ข้อมูลนั้นเกิดจากการนำ เลขฐานสองมาต่อๆกันหลายๆหลัก(ส่วนใหญ่หลักของเลขฐานสองจะเรียกว่าบิต) เช่น 00101, 11101
Radix Converter
เห็นความสำคัญของเลขฐานแล้ว โอ๊คเลยทำโปรแกรมแปลงเลขฐานอย่างง่ายๆมาให้ดูครับ แหะๆ โปรแกรมนี้ใช้ Visual C# 2008 เขียนครับ จริงๆทำไว้นานแล้ว ไม่มีโอกาสเอามาให้ดูกันนะ ซึ่งโปรแกรมของโอ๊คก็แปลงระบบเลขฐานสำคัญๆได้ 4 ชนิด ก็คือ เลขฐานสอง, เลขฐานแปด, เลขฐานสิบ, เลขฐานสิบหก วิธีใช้ไม่ยากครับ เลือกเลขฐานที่ต้องการแปลง จากนั้นใส่ค่าในช่องด้านบนครับ จากนั้นก็เลือกว่าต้องการจะแปลงให้เป็นเลขฐานชนิดใด แล้วค่าจะออกมาในช่องด้านล่างครับ คิดว่าจะทำเป็นกรณีศึกษาให้ได้โหลดโค้ดไปศึกษาได้ครับ สำหรับคนที่ต้องการก็โหลดจากลิ้งด้านล่างได้เลยครับ
โปรแกรมแรกของโอ๊คใน WindowForm ครับใช้เวลาเขียนค่อนข้างนานพอดูนะ เพราะว่าเป็นครั้งแรก รูปร่างหน้าตาอาจธรรมดาไปหน่อยแต่รับประกันคุณภาพ แหะๆ เป็นโปรแกรมแปลงเลขฐานครับ เอ้าสำหรับคนที่ไม่รู้จักระบบเลขฐาน ก็ไม่เป็นเรา จะพูดถึงให้ฟังกันครับ ในเรื่องของระบบเลขฐาน (Radix Number)
ระบบเลขฐานนิยามให้เข้าใจค่อนข้างยาก แต่จะลองดูนะ ก็คือ การรวมกันของจำนวนที่มีค่าประจำแต่ละตำแหน่งโดยค่าประจำตำแหน่งก็จะเป็นค่าของเลขฐานนั้น เอ้างง ไม่เป็นไร ต้องบอกไว้ก่อนว่า เลขฐานที่เราคุ้นเคยกันในชีวิตประจำวันนั่นก็คือ เลขฐานสิบ ที่ประกอบไปด้วย เลข 0-9 นั่นล่ะ ความสัมพันธ์กันของเลขฐานแต่ละชนิดก็มีนะ เช่น 5ในเลขฐานสิบ ถ้าอยู่ในระบบเลขฐานสอง ก็คือ 0101 สำหรับคนไม่เข้าใจจริงๆไม่ต้องห่วงมาอ่านบทความนี้ได้อะไรติดหัวไปแน่นอน เอ้า ไอ้เจ้า 5 มันเป็น 0101 ในเลขฐานสองได้อย่างไร พูดในเรื่องความสัมพันธ์กันระหว่างระบบเลขฐานสิบกับเลขฐานสองนะ 5 = (0x2^3)+(1x2^2)+(0x2^1)+(1x2^0) ลองคิดเลขยกกำลังเล่นๆดู เป็น 5 ไหมครับ ? ใช่แล้วครับเลขชี้กำลังเริ่มจากทางขวามา(และเริ่มที่ 0)และเพิ่มจำนวนขึ้นทีละ1 ไปทางซ้ายจนกว่าจะหมด และที่ฐานของเลขชี้กำลังเป็น2 ก็เพราะว่าเป็นเลขฐานสอง และในแง่เดียวกันก็คือเลขฐานอื่นๆก็แค่เปลี่ยนฐานของเลขชี้กำลังเท่านั้นเองครับ (ฐานอื่นๆก็เช่น ฐานแปด ฐานสิบหก)แล้วจะมีไอ้ระบบเลขฐานวุ่นวายไปทำไม ? คำถามนี้โอ๊คเคยถามตัวเองอยู่เหมือนกันตอนนั่งทำความเข้าใจกับมันน่ะนะ คอมพิวเตอร์ของเราก็ใช้ประโยชน์จากเลขฐานนี้ครับ นั่นคือเลขฐานสอง ทำไมถึงเลขฐานสองน่ะหรอ ก็เพราะว่าคอมพิวเตอร์ก็ไม่ได้ต่างไปจากอุปกรณ์ไฟฟ้าตัวอื่นๆเท่าใดนักที่จะต้องมีสวิตท์ เปิด ปิด เหมือนกับเลขฐานสองที่มี 1(เปิด)กับ 0(ปิด)นั่นแหละครับ แล้วมันใช้ยังไงเอาคร่าวๆให้ฟังกัน ใช้ในด้านการคำนวณ การเก็บข้อมูล และอีกมาก ข้อมูลนั้นเกิดจากการนำ เลขฐานสองมาต่อๆกันหลายๆหลัก(ส่วนใหญ่หลักของเลขฐานสองจะเรียกว่าบิต) เช่น 00101, 11101
เห็นความสำคัญของเลขฐานแล้ว โอ๊คเลยทำโปรแกรมแปลงเลขฐานอย่างง่ายๆมาให้ดูครับ แหะๆ โปรแกรมนี้ใช้ Visual C# 2008 เขียนครับ จริงๆทำไว้นานแล้ว ไม่มีโอกาสเอามาให้ดูกันนะ ซึ่งโปรแกรมของโอ๊คก็แปลงระบบเลขฐานสำคัญๆได้ 4 ชนิด ก็คือ เลขฐานสอง, เลขฐานแปด, เลขฐานสิบ, เลขฐานสิบหก วิธีใช้ไม่ยากครับ เลือกเลขฐานที่ต้องการแปลง จากนั้นใส่ค่าในช่องด้านบนครับ จากนั้นก็เลือกว่าต้องการจะแปลงให้เป็นเลขฐานชนิดใด แล้วค่าจะออกมาในช่องด้านล่างครับ คิดว่าจะทำเป็นกรณีศึกษาให้ได้โหลดโค้ดไปศึกษาได้ครับ สำหรับคนที่ต้องการก็โหลดจากลิ้งด้านล่างได้เลยครับ
สามารถโหลดไปใช้ได้ครับ Download Radix Converter
สำหรับกรณีต้องการโหลดไปศึกษาครับ
ขอขอบคุณ sanook.com ที่ให้พื้นที่ฝากไฟล์ฟรีครับ
สมัครสมาชิก:
บทความ (Atom)
รับปรับมุมมองในการโปรแกรมมิ่งสำหรับผู้เริ่มต้นเขียนโปรแกรม
รับปรับมุมมองในการโปรแกรมมิ่งจากเรื่องยากๆไม่เข้าใจ จะช่วยทำให้เป็นเรื่องง่ายและสนุก แอดมาคุยกันได้ครับ (ขอจำกัดไว้สำหรับผู้เพิ่งเริ่มต้นเขียนโปรแกรมเท่านั้น ในระดับสูงไปกว่านี้เช่นเขียนจนชำนาญแล้วจะไม่รับนะครับ)