การคำนวณในระบบคอมพิวเตอร์ จะรับข้อมูลจากผู้ใช้ระบบผ่านทาง 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
ไม่มีความคิดเห็น:
แสดงความคิดเห็น