ภาพยนตร์โฆษณา - ต่อต้านคอร์รัปชั่น

วันจันทร์ที่ 13 มิถุนายน พ.ศ. 2554

การใปรแกรม Microsoft Excel

โปรแกรม Microsoft Excel เป็นโปรแกรมประเภทสเปรดชีต (spreadsheet) หรือโปรแกรมตารางทำงานซึ่งใช้เก็บข้อมูลต่าง ๆ สูตรคำนวณ ลงบนแผ่นตารางงานคล้ายกับการเขียนข้อมูลลงไปในสมุดที่มีการตีช่องตารางทั้งแนวนอนและแนวตั้ง ตารางแต่ละช่องจะมีชื่อกำกับไว้ในแนวตั้งหรือสดมภ์ของตารางเป็นตัวอักษรภาษาอังกฤษเริ่มจาก A,B,C,...รื่อยไปจนสุดขอบตารางทางขวา มีทั้งหมด 256 สดมภ์ (Column) แนวนอนมีหมายเลขกำกับเป็นบรรทัดที่ 1,2,3,...รื่อยไปจนถึงบรรทัดสุดท้ายจำนวนบรรทัดจะต่างกันในแต่ละโปรแกรมในที่นี้เท่ากับ 65,536 แถว (Row) ช่องที่แนวตั้งและแนวนอนตัดกันเรียกว่า เซลล์ (Cell) ใช้บรรจุข้อมูล ข้อความ หรือสูตรคำนวณ ปัจจุบันโปรแกรมตารางทำงาน  มีความสามารถ 3 ด้าน คือ  คำนวณ  นำเสนองานด้วยกราฟและแผนภูมิ จัดการฐานข้อมูล โปรแกรมประเภทตารางทำงานมีผู้พัฒนาขึ้นมาหลายโปรแกรม เช่น ปี 2522ใช้โปรแกรมตารางทำงานชื่อว่า  วิสิแคล(VisiCalc) ต่อมาปรับปรุงชื่อว่า ซุปเปอร์แคล (SuperCalc) ในปี 2525  ในพัฒนาโปรแกรมชื่อว่า มัลติแพลน (Multiplan) ปี 2526ได้ปรับปรุงโปรแกรมชื่อว่าโลตัส 1-2-3 (Lotus 1-2-3) เป็นที่นิยมอย่างมาก  ออราคิล (Oracle) และต่อมาบริษัทไมโครซอฟท์ได้พัฒนาระบบงานวินโดวส์ขึ้นมาเพื่อให้ใช้ได้ง่ายชื่อว่า ไมโครซอฟท์เอ็กเซล (Microsoft Excel) ซึ่งเรียกว่า เอ็กเซล (Excel

การพัฒนาโปรแกรม

เราผ่านโลกในยุค PC มานานแล้ว โปรแกรมแทบทุกชนิดในโลกของ PC มี Pattern ของมันจนแทบจะดิ้นไปทางอื่นลำบาก จนมาเมื่อ 4-5 ปีนี้ที่โลกของ Smart Phone เข้ามา ตามมาด้วย Tablet ซึ่งก็เริ่มสร้าง Pattern ของตัวเองขึ้นมาได้ระดับหนึ่ง
  • PC รับคำสั่งผ่านเมาส์และคีย์บอร์ด ซึ่งมีความแม่นยำสูง เหมาะกับโปรแกรมประเภทหน้าต่าง
  • Smart Phone รับคำสั่งผ่านนิ้ว อาจจะมีคีย์บอร์ดบางรุ่น ความแม่นยำต่ำ หน้าจอเล็ก โปรแกรมจึงควรออกแบบให้ปุ่มใหญ่ Simplify ทุกอย่างให้น้อยที่สุดเท่าที่จะทำได้
  • Tablet มีขนาดใหญ่กว่า Smart Phone โปรแกรมสามารถแสดงผลแบบ 2-3 column ได้ ควรรองรับการหมุนเครื่องแนวตั้งและแนวนอน
คำถามคือแล้วสำหรับโลกใหม่ที่ยังเพิ่งเริ่มก่อตัวอย่างเงียบๆ อย่างการเขียนโปรแกรมบนทีวีที่นำโดย Google TV และอาจจะมี Apple TV ตามมาในอนาคต นักพัฒนาโปรแกรมอย่างเราจะมี Pattern ในการออกแบบโปรแกรมอย่างไร
เราอยู่กับทีวีมานาน ก่อนจะรู้จัก PC ด้วยซ้ำไป แต่การพัฒนาโปรแกรมบนทีวีเพิ่งจะเกิดขึ้นไม่นาน
  • ทีวีรับ input ผ่านทางรีโมท โดยมากจะมีเพียง D-pad (บน ล่าง ซ้าย ขวา) และปุ่มเลข 0-9
  • ทีวีมีหลากหลายมาก ทั้งขนาด การแสดงผล ความกว้างยาวของหน้าจอ จำนวน DPI
  • ผู้ใช้ส่วนใหญ่นั่งห่างจากทีวี 2 - 10 เมตร ซึ่งตรงนี้ต่างจาก PC, Smart Phone และ Tablet มาก
TV Application Pattern ที่ทีมงานกูเกิลแนะนำสำหรับนักพัฒนาโปรแกรมมีดังนี้


โปรแกรมสามารถลงผ่าน Google TV และเรียกใช้งานได้เหมือนโปรแกรมบน PC หรือ Smart Phone มีระบบ Install, Update, Uninstall แบบเดียวกัน

ทีวีไม่มีระบบสัมผัสหน้าจอ บังคับได้ 3 ทาง
  • D-Pad บน ล่าง ซ้าย ขวา
  • (อาจจะมี) คีย์บอร์ด
  • (อาจจะมี) เมาส์
ผู้ใช้ส่วนใหญ่นั่งห่างจากจอ 2 - 10 เมตร ซึ่งต่างจากหน้าจอ Smart Phone หรือ Tablet ถึงแม้ทีวีจะมีขนาดใหญ่มาก แต่เมื่อนั่งอยู่ห่างออกไป ขนาดของหน้าจอที่เห็นก็ใกล้เคียงกันกับ Tablet ที่วางอยู่ใกล้ๆ อย่าลืมว่าหน้าจอทีวีอยู่ในแนวนอนเสมอ ไม่จำเป็นต้องทำโปรแกรมสำหรับแนวตั้ง !!

ถึงแม้ปัจจุบันจะมีคีย์บอร์ดและเมาส์สำหรับทีวีแล้ว แต่ผู้ใช้จำนวนน้อยมากที่มี
เพราะฉะนั้นทุกโปรแกรมที่เขียนบททีวีควรจะสนับสนุน D-Pad ซึ่งมีอยู่ในรีโมททีวีแทบทุกตัวในปัจจุบัน

สำหรับการออกแบบโปรแกรมบน PC และ Tablet มักจะใช้หลักการของ Tab และ Scroll Bar ดังรูปข้างบน การออกแบบหน้าจอลักษณะนี้มีประโยชน์มากสำหรับอุปกรณ์ที่มี Pointing Device อย่างเมาส์หรือนิ้วสัมผัสจอ
แต่สำหรับทีวีที่มีเพียง D-Pad หากผู้ใช้ต้องการเลือกดูข้อมูลใน Tab 1 เลือก item 2 จะเห็นว่าผู้ใช้ต้องกดปุ่มลงมาเรื่อยๆ จนกว่าจะได้กดปุ่ม Button ข้างล่าง ซึ่งเป็นระยะทางที่ลำบากเกินไปสำหรับโปรแกรมบนทีวี

การออกแบบโปรแกรมบนทีวี จึงควรให้ Tab อยู่ทางซ้ายมือ รายการย่ออยู่ตรงกลาง และปุ่มสั่งการอาจจะอยู่ขวาสุดดังรูป
ถ้าผู้ใช้ต้องการเลือก Tab 1 และ item 2 หากจะไปที่ปุ่ม Button ก็กดปุ่มขวาเพียงครั้งเดียวก็เพียงพอ
ต่างกับ PC และ Smart Phone ที่ผู้ใช้สามรถเลื่อนไปกดปุ่มต่างๆ ได้ตามใจชอบ แต่กับทีวีและ D-Pad นักพัฒนาควรใส่ใจกับ State ของ Cursor ในแต่ละจุด ว่าตอนนี้อยู่ที่จุดไหนแล้ว กำลังจะไปที่ไหนต่อ ต้องใช้ระยะทางเท่าไหร่


ตัวอย่างการปรับ Action Bar จากบน Tablet มาอยู่บน Google TV นอกจากที่เราควรจะลดจำนวนปุ่มแล้วยังต้องปรับเมนูมาอยู่ทางซ้าย

ถ้าวัดขนาดกว้างยาวของหน้าจอ แน่นอนว่าทีวีมีขนาดใหญ่กว่าหน้าจอบนอุปกรณ์อื่นๆ มาก แต่ในความเป็นจริงแล้วจำนวน Pixel หรือ DPI ถ้าวัดจริงๆ ก็ไม่ได้มากกว่ากันซักเท่าไหร่ เราสามารถมองเห็น Pixel บนทีวีได้ถ้ามองใกล้ๆ ด้วยตาเปล่า
จากตารางข้างบน ทีวีจึงจัดอยู่ในกลุ่ม Large Screen และมี DPI อยู่ในช่วง 240-320 DPI
ถ้าหากเรานั่งห่างจากทีวีซัก 5 เมตร เราจะเห็นขนาดของจอทีวีไม่ได้ใหญ่กว่า Tablet ในมือมากนัก การทดสอบโปรแกรมบน Simulator จึงให้ผลไม่ต่างกับการทำงานจริงบนทีวีมากนัก

ด้วยเหตุผลทางการผลิตหลายอย่าง ทำให้ผู้ผลิตทีวีหลายรายจำเป็นต้องสร้างขอบขึ้นมาจากขนาดของจอจริงๆ เพราะฉะนั้นบางครั้งทีวีขนาด 1,920 x 1,080 อาจจะแสดงผลได้เพียง 1,692 x 952
ส่วนขอบที่หายไปจะถูก Crop ออกไป เพราะฉะนั้นเราควรออกแบบโรแกรมโดยเผื่อขอบที่หายไปด้วย

การวางตำแหน่ง UI ไม่ควรที่จะเขียนโค้ดระบุตำแหน่ง X - Y ที่ชัดเจน ควรออกแบบให้ UI เผื่อการยืดและหดได้ ตามขนาดของจอทีวีที่ไม่เท่ากัน
สำหรับ QA ควรจะมีการทดสอบโปรแกรมบนทีวีหลากหลายเท่าที่จะหาได้

ตัวอย่างการพอร์ทโปรแกรมจาก Tablet มาบน Google TV
จากรูปนี้คือโปรแกรม Pandora ในเวอร์ชัน Tablet ทุกอย่างดูเรียบง่ายดีอยู่แล้ว แต่ก็ยังมีสิ่งที่ต้องเปลี่ยนเมื่อมาอยู่บนทีวี
  • ปรับขนาดของรูปหน้าปกให้มี Resolution ที่มากกว่าเดิม (จอใหญ่ขึ้น)
  • เรียงปุ่มที่ใช้บ่อยอย่างเช่น เมนู, หยุด, เล่นเพลงต่อไป ไว้ทางซ้าย และปุ่มที่ใช้ไม่บ่อยนักไว้ทางขวา
  • UI หลายอย่างที่เขียนบน Android Tablet สามารถ Reuse มาใช้่บน Google TV ได้เลย

อีกตัวอย่างนึงจาก CNBC ที่ต้องคิดใหม่ โดยการรวมโปรแกรมเวอร์ชันมือถือกับหน้าเว็บเข้าด้วยกัน
  • แสดงวิดีโอหรือเนื้อข่าวทางซ้าย
  • แสดงส่วนของ Stock ทางขวา
  • ใช้ D-Pad เลื่อนไปตาม item ต่างๆ ได้ง่าย
  • ถ้ารีโมทมีปุ่น Play, Pause, Forward ควรเขียนโปรแกรมให้รองรับด้วย

สุดท้าย หน้าตาของ Android Market สำหรับ Google TV หน้าตาเป็นเช่นนี้
สรุป
  • การเขียนโปรแกรม, SDK, โค้ด ไม่ต่างจากเดิมเท่าไหร่
  • สำคัญที่สุดคือการวาง Layout ของโปรแกรม เพื่อรองรับ D-Pad
  • ทีวีมีหลากหลาย(มาก) ควรคิดเผื่อในการแสดงผลบนทีวีหน้าจอแบบอื่นๆ ด้วย
  • TV Application Development ยังเป็นช่วงเริ่มต้น อาจจะต้องลองผิดลองถูกไปอีกซักพักจนกว่าจะได้ Pattern ที่เหมาะสม
คำถามที่น่าสนใจ
  • โมเดลการหารายได้จากโปรแกรมบนทีวีจะมีหน้าตาเป็นอย่างไร
  • โปรแกรมประเภทใช้ฟรีแล้วเก็บค่าโฆษณา พอมาอยู่บนทีวี บริการโฆษณาอย่าง Adsense, Admob จะมีหน้าตาเป็นอย่างไร เก็บรายได้กันอย่างไร (ตามเวลาที่โฆษณาโชว์ ?)
  • เมื่อไหร่ที่ Apple TV จะลงโปรแกรมเพิ่มเติมได้ และเมื่อลงได้จริง ตลาด TV Application จะเป็นขุมทรัพย์ได้เท่ากับตลาด Smart Phone และ Tablet จริงหรือเปล่า ?

การพัฒนาระบบสารสนเทศ

การพัฒนาระบบสารสนเทศ
ความจำเป็นในการพัฒนาระบบสารสนเทศ 
1.  การเปลี่ยนแปลงกระบวนการบริหารและการปฏิบัติงาน  ระบบเดิมไม่สามารถให้ข้อมูลหรือทำงานได้ตามต้องการ มีการดำเนินงานหลายขึ้นตอน ยุ่งยากในการรวบรวมข้อมูลเพื่อนำมาจัดทำข้อมูลสรุปสำหรับการติดตามการปฏิบัติงานโดยรวมขององค์การ จึงจำเป็นต้องพัฒนาหรือปรับปรุงระบบสารสนเทศที่สามารถช่วยให้ขั้นตอนการปฏิบัติงานภายในและกระบวนการบริหารมีประสิทธิภาพมากขึ้น
2.  การเปลี่ยนแปลงด้านเทคโนโลยี  เทคโนโลยีที่ใช้อยู่ในระบบสารสนเทศปัจจุบันล้าสมัย ค่าช้จ่ายในการบำรุงรักษาระบบมีราคาสูง จึงต้องรับเอาเทคโนโลยีใหม่ๆ มาประยุกต์ใช้ซึ่งทำให้มีการเปลี่ยนแปลงระบบการทำงานที่มีอยู่เดิม
3.  การปรับองค์การและสร้างความได้เปรียบในการแข่งขัน 
-  ระบบที่ใช้งานอยู่ปัจจุบันมีขั้นตอนการทำงานที่ยุ่งยากซับซ้อน ขนาดเอกสารอ้างอิงหรือเอกสารที่มีอยู่ไม่ได้มารตรฐาน ทำให้การปรับปรุงหรือแก้ไขทำได้ยาก
-  ความต้องการปรับองค์การให้เหมาะสมเพื่อสามารตอบสนองต่อการเปลี่ยนแปลงสภาพแวดล้อมทางธุรกิจ
-  ระบบปัจจุบันไม่สามารถรองรับการเปลี่ยนแปลงในอนาคตได้
การพัฒนาระบบประกอบด้วย
            1)  กระบวนการทางธุรกิจ (Business Process) เกี่ยวข้องกับวัตถุประสงค์ เป้าหมาย และขั้นตอนการดำเนินธุรกิจขององค์การ
            -  การปรับปรุงคุณภาพ
            -  การติดตามความล้มเหลวจากการดำเนินงาน
            -  การปรับค่าตอบแทนของพนักงานโดยใช้การปรับปรุงคุณภาพเป็นดัชนี
            -  การค้นหาและแก้ไขสาเหตุที่แท้จริงของความล้มเหลว           
2)  บุคลากร (People) 
3)  วิธีการและเทคนิค (Methodology and Technique) การเลือกใช้วิธีการและเทคนิคที่เหมาะสมกับลักษณะของระบบเป็นสิ่งสำคัญ
4)  เทคโนโลยี (Technology) เทคโนโลยีมีการเปลี่ยนแปลงอย่างรวดเร็วจึงต้องมีการพิจารณาอย่างรอบคอบในการเลือกใช้เทคโนโลยีสารสนเทศให้มีความเหมาะสมกับลักษณะขอบเขตของระบบสารสนเทศแล ะงบประมาณที่กำหนด  
5)  งบประมาณ (Budget)  
6)  ข้อมูลและโครงสร้างพื้นฐานภายในองค์การ (Infrastructure)
7)  การบริหารโครงการ (Project Management) 
                    
ทีมงานพัฒนาระบบ
การพัฒนา IT เกี่ยวข้องกับบุคคลที่มีหน้าที่รับผิดชอบกระบวนการพัฒนาระบบหลายกลุ่ม โดยทั่วไปจะมีการทำงานเป็นทีมที่ต้องอาศัยความรู้ ประสบการณ์ และทักษะจากกลุ่มบุคคล
1)  คณะกรรมการ (Steering Committee)
2)  ผู้บริหารโครงการ (Project Manager)
3)  ผู้บริหารหน่วยงานด้านสารสนเทศ (MIS Manager)
4)  นักวิเคราะห์ระบบ (System Analyst) ควรมีทักษะในด้านต่างๆ คือ
                        -  ทักษะด้านเทคนิค
                        -  ทักษะด้านการวิเคราะห์ 
                        -  ทักษะดานการบริหารจัดการ 
                        -  ทักษะด้านการติดต่อสื่อสาร
5)  ผู้ชำนาญการทางด้านเทคนิค 
                        -  ผู้บริหารฐานข้อมูล (Database Administrator : DBA)
                        -  โปรแกรมเมอร์ (Programmer)
6)  ผู้ใช้และผู้จัดการทั่วไป (User and Manager) 

ระบบเลขฐานและตรรกศาสตร์


วันอาทิตย์ที่ 4 กรกฎาคม พ.ศ. 2553

ระบบเลขฐาน

เลขฐาน หมายถึงกลุ่มข้อมูลที่มีจำนวนหลัก (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 บิท การใช้เลขฐานสิบหกแทนเลขฐานสองทำให้จำนวนบิทสั้นลง
การเปลี่ยนฐานเลข (Base Number Conversion)

เนื่องจากตัวเลขในแต่ละฐานมี ค่าคงที่เฉพาะ ในแต่ละหลักของตัวเอง เช่นตัวเลข 100 มีค่าเท่ากับหนึ่งร้อยในระบบเลขฐานสิบ แต่ตัวเลข 100 ในระบบ
เลขฐานสอง (อ่านว่า หนึ่ง-ศูนย์-หนึ่ง) ซึ่งมีค่าเท่ากับ 4 เป็นต้น ดังนั้น จึงไม่สามารถนำค่าของเลขฐานใดๆ ไปคำนวณเปรียบเทียบ กับเลขฐานอื่นได้โดยตรง
เมื่อต้องการคำนวณหรือเปรียบเทียบตัวเลข (ประมวลผล) จำเป็นต้องเปลี่ยนฐานเลขเหล่านั้นให้เป็นฐานเดียวกันก่อน การเปลี่ยนฐานเลขสามารถกระทำได้
หลายวิธี ในหน่วยเรียนนี้จะใช้วิธีที่สะดวกที่สุดวิธีหนึ่ง ดังนี้
ก่อนเปลี่ยนฐานเลขใดๆ จำเป็นต้องทราบค่าคง ที่เฉพาะในแต่ละหลักของเลขฐานสองดังนี้


ตาราง แสดงค่าคงที่เฉพาะในแต่ละหลักของเลขฐานสอง


จากตาราง พบว่าค่าคงที่เฉพาะ จะมีค่าเป็น 2 เท่า จากขวาไปซ้าย
การเปลี่ยนเลขฐานสอง เป็นเลขฐานสิบ
ให้นำค่าคงที่เฉพาะที่ตรงกับเลข 1 ของฐานสองมารวมกัน เช่นจำนวน (11010)2ประกอบด้วยเลข “1” จำนวน 3 ตัว
เมื่อนำค่าคงที่เฉพาะที่ตรงกับเลข 1 มารวมกัน ทำให้ได้จำนวนในฐานสิบเป็น 16+8+2 = 26 ดังนี้



นอกจากนี้การเปลี่ยนเลขฐานสองให้เป็นเลขฐานสิบยังสามารถทำได้โดย นำตัวเลขในแต่ละตำแหน่งคูณด้วยค่าประจำตำแหน่งแล้วนำมารวมกัน

ค่าประจำตำแหน่งของเลขฐานสองเริ่มตั้งแต่ 20,21,22,…
ตัวอย่างเช่น
(1011)2 = (1x23)+(0x22)+(1x21)+(1x20)
= (1x8)+(0x4)+(1x2)+(1x1)
= 8+0+2+1
= 11

การเปลี่ยนเลขฐานสิบ เป็นเลขฐานสอง

ให้พิจารณานำค่าคงที่เฉพาะหลักใดๆมารวมกัน เพื่อให้ได้ค่าเท่ากับเลขฐานสิบที่กำหนด จากนั้นเติมเลข “1“ ณ ตำแหน่งที่นำตัวเลขมารวมนั้น เช่น (26)10จะต้องใช้ค่าคงที่เฉพาะรวมกัน 3 หลัก (16+8+2) ดังนั้นจึงเติม “1” ณ ตำแหน่ง

16,8 และ 2 ตามลำดับ ส่วนตำแหน่งที่เหลือให้เติม “0”



นอกจากนี้ยังสามารถเปลี่ยนค่าจากเลขฐานสิบให้เป็นฐานสอง โดยการหารเลขฐานสิบด้วยสองไปเรื่อยๆจะได้เศษจากการหาร คือ เลขฐานสอง ที่ต้องการ ตำแหน่งของเศษที่เกิดจากการหารก็คือกำลังของเลขฐานสอง นั่นคือเศษที่ได้จากการหารครั้งแรกจะคูณด้วย 20 เศษที่ได้จากการหารด้วย 2 ครั้งที่ 2 จะคูณด้วย 2 1เป็นต้น
ตัวอย่างเช่น

การเปลี่ยนระหว่างเลขฐานอื่น (ระหว่างฐานสอง ฐานแปด ฐานสิบ และฐานสิบหก)

ในที่นี้จะได้อธิบายถึงการเปลี่ยนฐานเลข ระหว่างเลขฐานสอง ฐานแปด ฐานสิบ และฐานสิบหก ซึ่งใช้ในระบบคอมพิวเตอร์ทั่วไป โดยมีหลักการเบื้องต้น 3 ประการ ดังนี้

(a) เปลี่ยนเลขฐานจากโจทย์ ไปสู่เลขฐานสองก่อน (ใช้เลขฐานสองเป็นตัวเชื่อมไปสู่เลข ฐานอื่น)

(b) เลขฐานแปด 1 หลัก ประกอบด้วยเลขฐานสอง 3 หลัก คือ (111) 2
(เนื่องจากเลขฐานแปด ต้องมีค่าไม่เกิน 7)

(c) เลขฐานสิบหก 1 หลัก ประกอบด้วยเลขฐานสอง 4 หลัก คือ (1111) 2

1 1 1 1

(เนื่องจากเลขฐานสิบหก ต้องมีค่าไม่เกิน 15)


ตัวอย่างที่ 7 (75) 8 = (?)10
ตัวอย่างที่ 7 (75) 8 = (?)10

-- ใช้หลักการ (a) เปลี่ยนเลขฐานแปด เป็นเลขฐานสอง ดังนี้

-- แยก (75) 8 ออกเป็น 2 กลุ่มๆละ 3 หลัก ตามหลักการข้อ (b) โดยแยก 7 และ 5 ออกจากกัน ดังนี้

-- เปลี่ยนเลขฐานสองที่ได้ เป็นเลขฐานสิบดังนี้ (111101)2 = (?)10

ตัวอย่างที่ 8 (4C)16 = (?)10
-- แยก (4C) 16 ออกเป็น 2 กลุ่มๆละ 4 หลัก ตามหลักการข้อ (c) ดังนี้


ทำให้ได้จำนวนเลขในรูปของเลขฐานสองเท่ากับ (1001100)2
-- เปลี่ยนเลขฐานสองที่ได้ เป็นเลขฐานสิบดังนี้ (1001100)2 = (?)10


(1001100) 2 = (64+8+4) 10 = (76) 10
\ (4C)16 = (76) 10




การแปลงเลขเศษส่วนในระบบเลขฐานสิบเป็นฐานสอง

การแปลงจำนวนเต็มใช้หลักการหารด้วย 2 (หรือการหาผลบวกของค่าประจำหลักก็ได้) สำหรับการแปลงเศษส่วนใช้วิธีการคูณด้วย 2 (คูณในระบบฐานสิบ) เพื่อหาค่าที่เป็นจำนวนเต็มหรือตัวทด (ตรงกันข้ามกับการแปลงจำนวนเต็มซึ่งใช้การหารและหาเศษที่เหลือ) ค่าตัวทดที่เกิดขึ้นในการคูณแต่ละครั้งให้เก็บไว้เป็นผลลัพธ์ นำส่วนที่เป็นเศษส่วนมาทำการคูณด้วยสองต่อไป จนได้ตัวเลขครบตามจำนวนที่ต้องการ ผู้ศึกษาจงสังเกตด้วยว่าการแปลงเลขเศษส่วนไปสู่ระบบฐานสองบางจำนวนไม่อาจแทนได้อย่างถูกต้อง ปรากฎการณ์นี้เป็นที่มาแห่งความผิดพลาดและคลาดเคลื่อนในการคำนวณเลขในระบบเครื่องคอมพิวเตอร์


ตัวอย่างที่ 9 จงแปลงจำนวน 159.356 ให้เป็นจำนวนในระบบเลขฐานสองกำหนดผลลัพธ์ไม่เกิน 8 หลัก

-- จำนวนที่กำหนดให้มีสองส่วนคือ ส่วนที่เป็นจำนวนเต็มได้แก่
159 แปลงเป็นจำนวนในระบบฐานสองได้ 159 = (10100001)2
-- เศษส่วนคือ .356 ทำการแปลงไปสู่ระบบเลขฐานสองด้วยการคูณด้วย
2 เก็บผลลัพธ์จากตัวแรกไปยังตัวสุดท้าย ดังนี้



ผลลัพธ์คือ ตัวทดที่ได้จากการคูณตามลำดับตั้งแต่ครั้งที่ 1 ไปจนถึงครั้งสุดท้าย (ตามลูกศร) โดยให้เขียนจุดแสดงเศษข้างหน้า
159.356 ป (10100001.01011) 2

ตัวอย่างนี้ แสดงเศษส่วนไว้เพียง 5 ตำแหน่ง ให้สังเกตว่าค่า ( .01011) 2 ไม่เรียกว่าเป็น
ค่าหลังจุดทศนิยม เพราะว่าจุดทศนิยมใช้สำหรับจำนวนในระบบเลขฐานสิบเท่านั้น เศษในระบบฐานสองข้างต้นนี้มีค่าไม่เท่ากับ .356 แต่เป็นเพียงค่าประมาณ(ที่น้อยกว่า)เท่านั้น

การแปลงจำนวนจากฐานหนึ่งไปยังอีกฐานหนึ่งเป็นต้นเหตุสำคัญของการเกิดค่าคลาดเคลื่อน (error)
ในการคำนวณต่างๆซึ่งเป็นสิ่งที่ต้องระมัดระวังมาก

ตรรกศาสตร์
ตรรกศาสตร์พื้นฐาน

1.คุณสมบัติของตรรกศาสตร์พื้นฐาน
1.1ประพจน์ (Propostion)
คือ ข้อความที่เป็นจริงหรือเป็นเท็จเพียงอย่างเดียวเท่านั้น
ตัวอย่างที่เป็นประพจน์
P : 15 + 5 = 20
Q : วันนี้อากาศหนาว
R : สัปดาห์หนึ่งมี 8 วัน
S : คนทุกคนเป็นอมตะ
ตัวอย่างที่ไม่เป็นประพจน์
ช่วยเปิดไฟให้หน่อย
ห้ามรบกวน
การแทนประพจน์จะใช้สัญลักษณ์ p, q, r … เพื่อแทนประพจน์ที่แตกต่างกัน ข้อความที่มีกริยาเพียงตัวเดียวและเป็นประพจน์ จะเรียกว่าประพจน์เบื้องต้น

1.2. การเชื่อมประพจน์
โดยปกติเมื่อกล่าวถึงข้อความหรือประโยคนั้นมักจะมีกริยามากกว่าหนึ่งตัว แสดงว่าได้นำ
ประโยคมาเชื่อมกันมากว่าหนึ่งประโยค ดังนั้นถ้านำประพจน์มาเชื่อมกันก็จะได้ประพจน์ใหม่ซึ่งสามารถบอกได้ว่าเป็นจริงหรือเป็นเท็จ ตัวเชื่อมประพจน์มีอยู่ 5 ตัว และตัวเชื่อมที่ใช้กันมากคือ
“และ” “หรือ” “ไม่” ที่เหลืออีกสองตัวคือ “ถ้า…แล้ว…” และ “…ก็ต่อเมื่อ…” เมื่อนำประพจน์เชื่อมด้วยตัวเชื่อม และ ,หรือ, ถ้า…แล้ว, …ก็ต่อเมื่อ
โดยที่ถ้า p และ q แทนประพจน์ จะเขียน



ถ้ากำหนดให้ T แทนค่าความจริงของประพจน์ที่เป็นจริง
F แทนค่าความจริงของประพจน์ที่เป็นเท็จ
และ p, q แทนประพจน์ใดๆ ที่ยังไม่ได้ระบุข้อความหรือแทนค่าข้อความลงไป
ประพจน์ p ู q จะเรียกว่าข้อความร่วม (conjugate statement) และจะสามารถเขียนตารางค่าความจริงของประพจน์ p ู q ได้ดังนี้


จากตารางจะพบว่า ค่าความจริงของประพจน์ p ู q จะเป็นจริงถ้าประพจน์ทั้งสองเป็นจริงนอกนั้นจะเป็นเท็จ


ประพจน์ p ฺ q เรียกว่าข้อความเลือก (disjunctive statement) เป็นข้อความที่เป็นจริงถ้า p หรือ q เป็นอย่างน้อยที่สุดหนึ่งประพจน์ แต่จะไม่เป็นจริงเมื่อทั้งสองประพจน์เป็นเท็จ ตารางค่าความจริงของ p ฺ q สามารถเขียนได้ดังนี้


ประพจน์ ~p เรียกว่านิเสธ (negation) p หมายถึงไม่เป็นจริงสำหรับ p จะเป็นจริงเมื่อ p เป็นเท็จและจะเป็นเท็จเมื่อ p เป็นจริง ตารางค่าความจริงของ ~p เป็นดังนี้


ประพจน์ p ฎ q เรียกว่าประโยคเงื่อนไขหรือข้อความแจงเหตุสู่ผล (conditional statement) ประพจน์ p เรียกว่าเหตุตัวเงื่อนและ q เป็นผลสรุป
เช่น p : นุ่นไปเที่ยวนอกบ้าน
q : คุณพ่อโทรศัพท์ตาม
ดังนั้น p ฎ q : ถ้านุ่นไปเที่ยวนอกบ้านแล้วคุณพ่อโทรศัพท์ตาม
จากการตรวจสอบเงื่อนไขนี้จะพบว่าประพจน์นี้จะเป็นเท็จกรณีเดียวคือ นุ่นไปเที่ยวนอกบ้านแต่คุณพ่อไม่โทรศัพท์ตาม ดังนั้นจะสามารถแสดงตารางค่าความจริงของประพจน์ p ฎ q ได้ดังนี้


ประพจน์ p ซq เรียกว่าประโยคเงื่อนไขสองทาง (biconditional statement) คือ ประพจน์ที่มีความหมายเหมือนกับ (p ฎ q) ู (q ฎ p) เนื่องจาก (p ฎ q) และ (q ฎ p) เชื่อมด้วยคำว่า “และ” ดังนั้น p ซq จะมีค่าความจริงเป็นจริงต่อเมื่อประพจน์ p และประพจน์ q มีค่าความจริงเหมือนกัน ดังตารางต่อไปนี้



จากตารางค่าความจริงของประพจน์ที่มีตัวเชื่อมทั้ง 5จะพบว่า
1. ~ p มีค่าความจริงตรงกันข้ามกับค่าความเป็นจริงของ p
2. p ู q เป็น T กรณีเดียวคือกรณีที่ทั้ง p และ q เป็น T
3. p ฺ q เป็น F กรณีเดียวคือกรณีที่ทั้ง p และ q เป็น F
4. p ฎ q เป็น F กรณีเดียวคือกรณีที่ทั้ง p เป็น T และ q เป็น F
5. p ซ q เป็น T เมื่อ p และ q มีค่าความจริงเหมือนกัน


1.3. สัจนิรันดร์ (Tautology)

หมายถึงประพจน์ผสมที่มีค่าความจริงเป็นจริงทุกกรณี ไม่ว่าจะประกอบขึ้นจากประพจน์ย่อยที่มีค่าความจริงเป็นอย่างไร อาทิเช่น


การทดสอบว่าประพจน์ใดเป็นสัจนิรันดร์หรือไม่ ทำได้ 2 วิธีคือ
1. ใช้ตารางค่าความจริง เพื่อดูว่ามีค่าความจริงเป็นจริงทุกกรณีจริงหรือไม่
2. ใช้การทำ Contradiction คือการบังคับให้ประพจน์นั้นเป็นเท็จ ถ้าสามารถทำให้ประพจน์นั้นเป็นเท็จได้สำเร็จ แสดงว่าประพจน์นั้นไม่เป็นสัจนิรันดร์ แต่ถ้าไม่สามารถบังคับให้ประพจน์นั้นเป็นเท็จได้ ประพจน์นั้นจะเป็นสัจนิรันดร์ทันที

1.4. กฎของการแทนที่ กฎของการแทนที่เป็นกฎที่ใช้แทนที่กันได้เนื่องจากเป็นข้อความที่สมมูลกัน มีดังต่อไปนี้


ทฤษฎีพื้นฐานของพีชคณิตบูลีน
 

วันอาทิตย์ที่ 4 กรกฎาคม พ.ศ. 2553

ระบบเลขฐาน
 
เลขฐาน หมายถึงกลุ่มข้อมูลที่มีจำนวนหลัก (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 บิท การใช้เลขฐานสิบหกแทนเลขฐานสองทำให้จำนวนบิทสั้นลง
การเปลี่ยนฐานเลข (Base Number Conversion)

เนื่องจากตัวเลขในแต่ละฐานมี ค่าคงที่เฉพาะ ในแต่ละหลักของตัวเอง เช่นตัวเลข 100 มีค่าเท่ากับหนึ่งร้อยในระบบเลขฐานสิบ แต่ตัวเลข 100 ในระบบ
เลขฐานสอง (อ่านว่า หนึ่ง-ศูนย์-หนึ่ง) ซึ่งมีค่าเท่ากับ 4 เป็นต้น ดังนั้น จึงไม่สามารถนำค่าของเลขฐานใดๆ ไปคำนวณเปรียบเทียบ กับเลขฐานอื่นได้โดยตรง
เมื่อต้องการคำนวณหรือเปรียบเทียบตัวเลข (ประมวลผล) จำเป็นต้องเปลี่ยนฐานเลขเหล่านั้นให้เป็นฐานเดียวกันก่อน การเปลี่ยนฐานเลขสามารถกระทำได้
หลายวิธี ในหน่วยเรียนนี้จะใช้วิธีที่สะดวกที่สุดวิธีหนึ่ง ดังนี้
ก่อนเปลี่ยนฐานเลขใดๆ จำเป็นต้องทราบค่าคง ที่เฉพาะในแต่ละหลักของเลขฐานสองดังนี้


ตาราง แสดงค่าคงที่เฉพาะในแต่ละหลักของเลขฐานสอง


จากตาราง พบว่าค่าคงที่เฉพาะ จะมีค่าเป็น 2 เท่า จากขวาไปซ้าย
การเปลี่ยนเลขฐานสอง เป็นเลขฐานสิบ
ให้นำค่าคงที่เฉพาะที่ตรงกับเลข 1 ของฐานสองมารวมกัน เช่นจำนวน (11010)2ประกอบด้วยเลข “1” จำนวน 3 ตัว
เมื่อนำค่าคงที่เฉพาะที่ตรงกับเลข 1 มารวมกัน ทำให้ได้จำนวนในฐานสิบเป็น 16+8+2 = 26 ดังนี้



นอกจากนี้การเปลี่ยนเลขฐานสองให้เป็นเลขฐานสิบยังสามารถทำได้โดย นำตัวเลขในแต่ละตำแหน่งคูณด้วยค่าประจำตำแหน่งแล้วนำมารวมกัน

ค่าประจำตำแหน่งของเลขฐานสองเริ่มตั้งแต่ 20,21,22,…
ตัวอย่างเช่น
(1011)2 = (1x23)+(0x22)+(1x21)+(1x20)
= (1x8)+(0x4)+(1x2)+(1x1)
= 8+0+2+1
= 11

การเปลี่ยนเลขฐานสิบ เป็นเลขฐานสอง

ให้พิจารณานำค่าคงที่เฉพาะหลักใดๆมารวมกัน เพื่อให้ได้ค่าเท่ากับเลขฐานสิบที่กำหนด จากนั้นเติมเลข “1“ ณ ตำแหน่งที่นำตัวเลขมารวมนั้น เช่น (26)10จะต้องใช้ค่าคงที่เฉพาะรวมกัน 3 หลัก (16+8+2) ดังนั้นจึงเติม “1” ณ ตำแหน่ง

16,8 และ 2 ตามลำดับ ส่วนตำแหน่งที่เหลือให้เติม “0”



นอกจากนี้ยังสามารถเปลี่ยนค่าจากเลขฐานสิบให้เป็นฐานสอง โดยการหารเลขฐานสิบด้วยสองไปเรื่อยๆจะได้เศษจากการหาร คือ เลขฐานสอง ที่ต้องการ ตำแหน่งของเศษที่เกิดจากการหารก็คือกำลังของเลขฐานสอง นั่นคือเศษที่ได้จากการหารครั้งแรกจะคูณด้วย 20 เศษที่ได้จากการหารด้วย 2 ครั้งที่ 2 จะคูณด้วย 2 1เป็นต้น
ตัวอย่างเช่น

การเปลี่ยนระหว่างเลขฐานอื่น (ระหว่างฐานสอง ฐานแปด ฐานสิบ และฐานสิบหก)

ในที่นี้จะได้อธิบายถึงการเปลี่ยนฐานเลข ระหว่างเลขฐานสอง ฐานแปด ฐานสิบ และฐานสิบหก ซึ่งใช้ในระบบคอมพิวเตอร์ทั่วไป โดยมีหลักการเบื้องต้น 3 ประการ ดังนี้

(a) เปลี่ยนเลขฐานจากโจทย์ ไปสู่เลขฐานสองก่อน (ใช้เลขฐานสองเป็นตัวเชื่อมไปสู่เลข ฐานอื่น)

(b) เลขฐานแปด 1 หลัก ประกอบด้วยเลขฐานสอง 3 หลัก คือ (111) 2
(เนื่องจากเลขฐานแปด ต้องมีค่าไม่เกิน 7)

(c) เลขฐานสิบหก 1 หลัก ประกอบด้วยเลขฐานสอง 4 หลัก คือ (1111) 2

1 1 1 1

(เนื่องจากเลขฐานสิบหก ต้องมีค่าไม่เกิน 15)


ตัวอย่างที่ 7 (75) 8 = (?)10
ตัวอย่างที่ 7 (75) 8 = (?)10

-- ใช้หลักการ (a) เปลี่ยนเลขฐานแปด เป็นเลขฐานสอง ดังนี้

-- แยก (75) 8 ออกเป็น 2 กลุ่มๆละ 3 หลัก ตามหลักการข้อ (b) โดยแยก 7 และ 5 ออกจากกัน ดังนี้

-- เปลี่ยนเลขฐานสองที่ได้ เป็นเลขฐานสิบดังนี้ (111101)2 = (?)10

ตัวอย่างที่ 8 (4C)16 = (?)10
-- แยก (4C) 16 ออกเป็น 2 กลุ่มๆละ 4 หลัก ตามหลักการข้อ (c) ดังนี้


ทำให้ได้จำนวนเลขในรูปของเลขฐานสองเท่ากับ (1001100)2
-- เปลี่ยนเลขฐานสองที่ได้ เป็นเลขฐานสิบดังนี้ (1001100)2 = (?)10


(1001100) 2 = (64+8+4) 10 = (76) 10
\ (4C)16 = (76) 10




การแปลงเลขเศษส่วนในระบบเลขฐานสิบเป็นฐานสอง

การแปลงจำนวนเต็มใช้หลักการหารด้วย 2 (หรือการหาผลบวกของค่าประจำหลักก็ได้) สำหรับการแปลงเศษส่วนใช้วิธีการคูณด้วย 2 (คูณในระบบฐานสิบ) เพื่อหาค่าที่เป็นจำนวนเต็มหรือตัวทด (ตรงกันข้ามกับการแปลงจำนวนเต็มซึ่งใช้การหารและหาเศษที่เหลือ) ค่าตัวทดที่เกิดขึ้นในการคูณแต่ละครั้งให้เก็บไว้เป็นผลลัพธ์ นำส่วนที่เป็นเศษส่วนมาทำการคูณด้วยสองต่อไป จนได้ตัวเลขครบตามจำนวนที่ต้องการ ผู้ศึกษาจงสังเกตด้วยว่าการแปลงเลขเศษส่วนไปสู่ระบบฐานสองบางจำนวนไม่อาจแทนได้อย่างถูกต้อง ปรากฎการณ์นี้เป็นที่มาแห่งความผิดพลาดและคลาดเคลื่อนในการคำนวณเลขในระบบเครื่องคอมพิวเตอร์


ตัวอย่างที่ 9 จงแปลงจำนวน 159.356 ให้เป็นจำนวนในระบบเลขฐานสองกำหนดผลลัพธ์ไม่เกิน 8 หลัก

-- จำนวนที่กำหนดให้มีสองส่วนคือ ส่วนที่เป็นจำนวนเต็มได้แก่
159 แปลงเป็นจำนวนในระบบฐานสองได้ 159 = (10100001)2
-- เศษส่วนคือ .356 ทำการแปลงไปสู่ระบบเลขฐานสองด้วยการคูณด้วย
2 เก็บผลลัพธ์จากตัวแรกไปยังตัวสุดท้าย ดังนี้



ผลลัพธ์คือ ตัวทดที่ได้จากการคูณตามลำดับตั้งแต่ครั้งที่ 1 ไปจนถึงครั้งสุดท้าย (ตามลูกศร) โดยให้เขียนจุดแสดงเศษข้างหน้า
159.356 ป (10100001.01011) 2

ตัวอย่างนี้ แสดงเศษส่วนไว้เพียง 5 ตำแหน่ง ให้สังเกตว่าค่า ( .01011) 2 ไม่เรียกว่าเป็น
ค่าหลังจุดทศนิยม เพราะว่าจุดทศนิยมใช้สำหรับจำนวนในระบบเลขฐานสิบเท่านั้น เศษในระบบฐานสองข้างต้นนี้มีค่าไม่เท่ากับ .356 แต่เป็นเพียงค่าประมาณ(ที่น้อยกว่า)เท่านั้น

การแปลงจำนวนจากฐานหนึ่งไปยังอีกฐานหนึ่งเป็นต้นเหตุสำคัญของการเกิดค่าคลาดเคลื่อน (error)
ในการคำนวณต่างๆซึ่งเป็นสิ่งที่ต้องระมัดระวังมาก

ตรรกศาสตร์
ตรรกศาสตร์พื้นฐาน

1.คุณสมบัติของตรรกศาสตร์พื้นฐาน
1.1ประพจน์ (Propostion)
คือ ข้อความที่เป็นจริงหรือเป็นเท็จเพียงอย่างเดียวเท่านั้น
ตัวอย่างที่เป็นประพจน์
P : 15 + 5 = 20
Q : วันนี้อากาศหนาว
R : สัปดาห์หนึ่งมี 8 วัน
S : คนทุกคนเป็นอมตะ
ตัวอย่างที่ไม่เป็นประพจน์
ช่วยเปิดไฟให้หน่อย
ห้ามรบกวน
การแทนประพจน์จะใช้สัญลักษณ์ p, q, r … เพื่อแทนประพจน์ที่แตกต่างกัน ข้อความที่มีกริยาเพียงตัวเดียวและเป็นประพจน์ จะเรียกว่าประพจน์เบื้องต้น

1.2. การเชื่อมประพจน์
โดยปกติเมื่อกล่าวถึงข้อความหรือประโยคนั้นมักจะมีกริยามากกว่าหนึ่งตัว แสดงว่าได้นำ
ประโยคมาเชื่อมกันมากว่าหนึ่งประโยค ดังนั้นถ้านำประพจน์มาเชื่อมกันก็จะได้ประพจน์ใหม่ซึ่งสามารถบอกได้ว่าเป็นจริงหรือเป็นเท็จ ตัวเชื่อมประพจน์มีอยู่ 5 ตัว และตัวเชื่อมที่ใช้กันมากคือ
“และ” “หรือ” “ไม่” ที่เหลืออีกสองตัวคือ “ถ้า…แล้ว…” และ “…ก็ต่อเมื่อ…” เมื่อนำประพจน์เชื่อมด้วยตัวเชื่อม และ ,หรือ, ถ้า…แล้ว, …ก็ต่อเมื่อ
โดยที่ถ้า p และ q แทนประพจน์ จะเขียน



ถ้ากำหนดให้ T แทนค่าความจริงของประพจน์ที่เป็นจริง
F แทนค่าความจริงของประพจน์ที่เป็นเท็จ
และ p, q แทนประพจน์ใดๆ ที่ยังไม่ได้ระบุข้อความหรือแทนค่าข้อความลงไป
ประพจน์ p ู q จะเรียกว่าข้อความร่วม (conjugate statement) และจะสามารถเขียนตารางค่าความจริงของประพจน์ p ู q ได้ดังนี้


จากตารางจะพบว่า ค่าความจริงของประพจน์ p ู q จะเป็นจริงถ้าประพจน์ทั้งสองเป็นจริงนอกนั้นจะเป็นเท็จ


ประพจน์ p ฺ q เรียกว่าข้อความเลือก (disjunctive statement) เป็นข้อความที่เป็นจริงถ้า p หรือ q เป็นอย่างน้อยที่สุดหนึ่งประพจน์ แต่จะไม่เป็นจริงเมื่อทั้งสองประพจน์เป็นเท็จ ตารางค่าความจริงของ p ฺ q สามารถเขียนได้ดังนี้


ประพจน์ ~p เรียกว่านิเสธ (negation) p หมายถึงไม่เป็นจริงสำหรับ p จะเป็นจริงเมื่อ p เป็นเท็จและจะเป็นเท็จเมื่อ p เป็นจริง ตารางค่าความจริงของ ~p เป็นดังนี้


ประพจน์ p ฎ q เรียกว่าประโยคเงื่อนไขหรือข้อความแจงเหตุสู่ผล (conditional statement) ประพจน์ p เรียกว่าเหตุตัวเงื่อนและ q เป็นผลสรุป
เช่น p : นุ่นไปเที่ยวนอกบ้าน
q : คุณพ่อโทรศัพท์ตาม
ดังนั้น p ฎ q : ถ้านุ่นไปเที่ยวนอกบ้านแล้วคุณพ่อโทรศัพท์ตาม
จากการตรวจสอบเงื่อนไขนี้จะพบว่าประพจน์นี้จะเป็นเท็จกรณีเดียวคือ นุ่นไปเที่ยวนอกบ้านแต่คุณพ่อไม่โทรศัพท์ตาม ดังนั้นจะสามารถแสดงตารางค่าความจริงของประพจน์ p ฎ q ได้ดังนี้


ประพจน์ p ซq เรียกว่าประโยคเงื่อนไขสองทาง (biconditional statement) คือ ประพจน์ที่มีความหมายเหมือนกับ (p ฎ q) ู (q ฎ p) เนื่องจาก (p ฎ q) และ (q ฎ p) เชื่อมด้วยคำว่า “และ” ดังนั้น p ซq จะมีค่าความจริงเป็นจริงต่อเมื่อประพจน์ p และประพจน์ q มีค่าความจริงเหมือนกัน ดังตารางต่อไปนี้



จากตารางค่าความจริงของประพจน์ที่มีตัวเชื่อมทั้ง 5จะพบว่า
1. ~ p มีค่าความจริงตรงกันข้ามกับค่าความเป็นจริงของ p
2. p ู q เป็น T กรณีเดียวคือกรณีที่ทั้ง p และ q เป็น T
3. p ฺ q เป็น F กรณีเดียวคือกรณีที่ทั้ง p และ q เป็น F
4. p ฎ q เป็น F กรณีเดียวคือกรณีที่ทั้ง p เป็น T และ q เป็น F
5. p ซ q เป็น T เมื่อ p และ q มีค่าความจริงเหมือนกัน


1.3. สัจนิรันดร์ (Tautology)

หมายถึงประพจน์ผสมที่มีค่าความจริงเป็นจริงทุกกรณี ไม่ว่าจะประกอบขึ้นจากประพจน์ย่อยที่มีค่าความจริงเป็นอย่างไร อาทิเช่น


การทดสอบว่าประพจน์ใดเป็นสัจนิรันดร์หรือไม่ ทำได้ 2 วิธีคือ
1. ใช้ตารางค่าความจริง เพื่อดูว่ามีค่าความจริงเป็นจริงทุกกรณีจริงหรือไม่
2. ใช้การทำ Contradiction คือการบังคับให้ประพจน์นั้นเป็นเท็จ ถ้าสามารถทำให้ประพจน์นั้นเป็นเท็จได้สำเร็จ แสดงว่าประพจน์นั้นไม่เป็นสัจนิรันดร์ แต่ถ้าไม่สามารถบังคับให้ประพจน์นั้นเป็นเท็จได้ ประพจน์นั้นจะเป็นสัจนิรันดร์ทันที

1.4. กฎของการแทนที่ กฎของการแทนที่เป็นกฎที่ใช้แทนที่กันได้เนื่องจากเป็นข้อความที่สมมูลกัน มีดังต่อไปนี้


ทฤษฎีพื้นฐานของพีชคณิตบูลีน