วันเสาร์ที่ 28 พฤศจิกายน พ.ศ. 2558

หลักการคำนวนทางคณิตศาสตร์



    การคำนวณในระบบคอมพิวเตอร์ จะรับข้อมูลจากผู้ใช้ระบบผ่านทาง Input Device เข้ามา ทำการประมวลผล (Process) เช่น การบวก การลบ การคูณ การหาร เปรียบเทียบ เสร็จแล้วนำผลที่ได้ออกแสดงผล (Output)ดังรูป



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

การคำนวณในระบบคอมพิวเตอร์เครื่องคอมพิวเตอร์จะเรียงอันดับความสำคัญของเครื่องหมาย (Operator) ต่างๆ ก่อนว่าเครื่องหมายใดควรถูกกระทำก่อน หลัง ซึ่งสามารถเรียงอันดับเครื่องหมายที่มีความสำคัญจากมากไปหาเครื่องหมายที่มีความสำคัญน้อย ดังนี้

ลำดับความสำคัญ
เครื่องหมาย
การคำนวณ
หลักการให้ความสำคัญ
1.
2.

3.
     ^   หรือ  *   *
     *
     /
     +
     -
ยกกำลัง
คูณ
หาร
บวก
ลบ
มีความสำคัญมากที่สุด
เครื่องหมายใดมาก่อนถูกประมวลผลก่อน   เช่น 4 / 2 * 3 = (4/2) * 3 = 2 x 3 = 6
เครื่องหมายใดมาก่อนถูกประมวลผลก่อน   เช่น 8 – 2 + 3 = (8 - 2) + 3 = 6+3 = 9


ข้อสังเกต  หลักการคำนวณในระบบคอมพิวเตอร์
    1. ถ้านิพจน์ใดมีวงเล็บให้สนใจทำการคำนวณเลขที่อยู่ในวงเล็บเป็นอันดับแรก
   2. เครื่องหมาย ^ (ยกกำลังจะถูกประมวลผลก่อนเครื่องหมายอื่นๆ  เสมอ  เพราะมีความสำคัญมากที่สุด  ยกเว้นเครื่องหมายวงเล็บ
   3. เครื่องหมาย   กับ  /  มีระดับความสำคัญเท่ากัน  ดังนั้น  เครื่องหมายที่มาก่อน  (เครื่องหมายที่อยู่ทางซ้ายมือสุด)  จะถูกประมวลผลก่อน 
   4. เครื่องมาย  +  กับ  มีระดับความสำคัญเท่ากัน  ดังนั้นระดับการประมวลผลจึงถูกประมวลผลเครื่องมือที่ทางด้านซ้ายสุดเป็นอันดับแรก


การบวกเลขฐานสอง
การบวกเลขฐานสอง หรือเลขไบนารี คล้ายกับการบวกเลขฐานสิบที่เราคุ้นเคย แต่การบวกเลขฐานสองนั้นง่ายกว่า เพราะมีเพียง 4 กรณี เท่านั้นที่จะต้องจำ คือ
  0 + 0 = 0
  0 + 1 = 1
  1 + 0 = 1
   1 + 1 = 10
    การอธิบายและเขียนเลขฐานต่าง ๆ 4 อย่าง คือ เลขฐานสอง เลขฐานสิบ เลขฐานแปด และเลขฐานสิบหก ตัวเลขบางจำนวนอาจทำให้สับสน เช่น 10 อาจเป็นเลขฐานใดก็ได้ใน 4 อย่างที่กล่าวมา ดังนั้นเพื่อให้เกิดความแตกต่างจึงต้องใช้ ตัวห้อย (subscripts) เป็นตัวเลขแทนเลขฐานนั้น ๆ ดังนี้
 2 แทน เลขฐานสอง
 8 แทน เลขฐานแปด
 10 แทน เลขฐานสิบ
 16 แทน เลขฐานสิบหก

 การบวกเลขฐานสองหลายบิต
การบวกเลขฐานสองหลายบิต จะต้องนำตัวตั้ง และตัวบวกมาตั้งให้บิตขวาสุดของแต่จำนวนตรงกัน ดังแสดงในตัวอย่าง
1 1 1 0 0
+ 1 1 0 0 1
?
เริ่มต้นบวกที่คอลัมน์ขวาสุด
1 1 1 0 0
+ 1 1 0 0 1
1
ต่อไปบวกคู่บิต ในคอลัมน์ที่ 2 และคอลัมน์ที่ 3
1 1 1 0 0
+ 1 1 0 0 1
1 0 1
ต่อไปบวกคู่บิต ในคอลัมน์ที่ 4 คือ 1 + 1 = 10 ใส่ 0 มีตัวทด 1 ให้วางตัวทดในตำแหน่งถัดไปที่สูงขึ้น
ตัวทด 1
1 1 1 0 0
+ 1 1 0 0 1
0 1 0 1
ในคอลัมน์สุดท้ายจะต้องบวกกัน 3 บิต (รวมตัวทด) คือ 1 + 1 + 1 = 10 + 1 = 11
ตัวทด 1
1 1 1 0 0
+ 1 1 0 1 0
1 1 0 1 0 1

  การลบเลขฐานสอง
มีกฎพื้นฐานอยู่ 4 อย่าง สำหรับการลบเลขฐานสอง ดังนี้
0 – 0 = 0
0 – 0 = 1
1 – 1 = 0
10 – 1 = 1
รลบเลขฐานสองที่มีหลายบิต จะทำเช่นเดียวกับการบวก คือ จะเริ่มลบจากคอลัมน์ หรือบิตทางขวาก่อน (LSB) ไปจนถึงคอลัมน์ซ้ายสุด (MSB) ดังตัวอย่างต่อไปนี้
101 0 1
– 1 0 0 1 1
?
มลบจากคอลัมน์ขวาสุด (LSB)
1 0 0 1
– 1 0 0 1 1
0
  เลขฐานสองแบบไม่มีเครื่องหมาย
    บางครั้งข้อมูลที่เป็นจำนวนค่าตัวเลข จะคำนึงถึงเฉพาะขนาด หรือแมกนิจูด (magnitude) อย่างเดียว จะไม่สนใจเครื่องหมายบวก ( + ) หรือลบ ( – ) ตัวอย่างเช่น เลขฐานสองขนาด 8 บิต จะมีขนาด ตั้งแต่น้อยที่สุด คือ 0000 0000 ไปจนถึงขนาดมากที่สุดคือ 1111 1111 หรือถ้าเป็นเลขฐานสิบหก จะเริ่มตั้งแต่ 00H ถึง FFH และถ้าเป็นเลขฐานสิบ ก็คือ 0 ถึง 255
จำนวนที่แสดงเฉพาะขนาด เราเรียกว่า จำนวนแบบไม่มีเครื่องหมาย ถ้าเป็นเลขฐานสอง ก็จะเป็นเลขฐานแบบไม่มีเครื่องหมาย บิตทุกบิตบนจำนวนนั้นจะเป็นค่าน้ำหนัก ซึ่งเทียบได้กับเลขฐานสิบทุกบิต แต่เราก็สามารถที่จะทำการบวกหรือลบได้ตามปกติในไมโครคอมพิวเตอร์ยุคแรกจะสามารถประมวลผลได้ครั้งละ 8 บิต ดังนั้นขนาดของผลลัพธ์ที่ได้ก็จะต้องอยู่ระหว่าง 0 ถึง 255 แต่ถ้าต้องการขนาดที่มากกว่า 255 จะต้องใช้เลขฐานสองขนาด 16 บิต ซึ่งหมายถึงการประมวลผลต้องทำ 2 ครั้ง คือ ทำ 8 บิตต่ำ (lower byte) ก่อนแล้วไปทำ 8 บิตสูง (upper byte) การบวกเลขฐานสองขนาด 8 บิต ถ้าผลบวกมีค่ามากกว่า 255 เราเรียกว่า โอเวอร์โฟลว์ (overflow) ซึ่งจะเกิดตัวทดในคอลัมน์ที่ 9 ในระบบไมโครโปรเซสเซอร์จะมีวงจรที่จะแจ้งเตือนเรียกว่า แฟลกตัวทด (carry flag) เมื่อมีตัวทดเกิดขึ้น ผลลัพธ์ที่ได้จะไม่ถูกต้อง

  เลขฐานสองที่มีเครื่องหมาย
    ในเลขฐานสิบที่มีเครื่องหมายติดลบ จะเขียนเครื่องหมายลบไว้ข้างหน้าของขนาดตัวเลข เช่น –1, –2, –3 เป็นต้น ส่วนเลขที่มีจำนวนบวก ถ้าจะเขียนเครื่องหมายบวกข้างหน้าขนาดตัวเลขก็ได้ เช่น +1, +2, +3 หรือ อาจไม่ต้องเขียนก็หมายถึงเลขจำนวนบวก ถ้าแปลงเลขฐานสิบให้เป็นเลขฐานสอง และมีเครื่องหมายติดลบด้วยก็ได้ –001, –010, –011 หรือถ้าเป็นจำนวนบวกก็จะได้ +001, +010, +011 แต่การนำข้อมูลเหล่านี้ไปประมวลผลในระบบดิจิตอลจะไม่สามารถประมวลผลได้ ระบบจะทำงานได้เฉพาะข้อมูลดิจิตอลที่เป็น 0 และ 1 เท่านั้น ดังนั้นเครื่องหมายบวก (+) จึงถูกกำหนดให้เป็นค่าลอจิก 0 และเครื่องหมายลบ (–) ถูกกำหนดให้เป็นค่าลอจิก 1 จึงทำให้ +001, +010 และ +011 ถูกเปลี่ยนเป็นรหัส 4 บิต ดังนี้ 0001, 0010 และ 0011 ส่วนจำนวนลบจะได้รหัส 4 บิต เช่นกัน คือ 1001, 1010 และ 1011
ตัวเลขดังกล่าวประกอบด้วยบิตเครื่องหมาย และตามด้วยกลุ่มบิตที่แสดงขนาดของตัวเลข เราจะเรียกข้อมูลที่มีรูปแบบดังกล่าวนี้ว่า เลขฐานสองชนิดบอกเครื่องหมาย ขนาด หรือ Sign – magnitude ดังตัวอย่างข้อมูลที่ถูกเปลี่ยนให้เป็นเลขฐานสองชนิดบอกเครื่องหมาย ดังต่อไปนี้
+5 0000 0101
–5 1000 0101
+128 0000 0000 1000 0000

–128 1000 0000 1000 0000

ไม่มีความคิดเห็น:

แสดงความคิดเห็น