ผู้ใช้:Neneme
จากวิกิพีเดีย สารานุกรมเสรี
ตัวเลขแบบคิดเครื่องหมาย (Sign Number)
ตัวเลขดิจิตอลที่คอมพิวเตอร์ใช้ในการคำนวณนั้น ในตัวเลข1 ชุด จะแบ่งออกเป็น2 ส่วนด้วยกันคือ
1.ส่วนที่เป็นชุดตัวเลข
2.ส่วนที่มีขนาดเท่ากับ1Bit เพื่อแสดงเครื่องหมายบวกหรือลบ
-ถ้า Bit ที่แสดงเครื่องหมายบวกหรือลบ เป็นเลข 0 แสดงว่า ชุดของตัวเลขนั้นเป็นจำนวนบวก
-ถ้า Bit ที่แสดงเครื่องหมายบอกหรือลบ เป็นเลข 1 แสงว่า ชุดของตัวเลขนั้นเป็นจำนวนลบ
เราจะมาพูดถึงเรื่องรูปแบบของเลขแบบ 2’s Complement (ทู-คอมพลีเมนต์)รูปแบบเลข 2’s Complement จะอยู่ในลักษณะของเลข ฐาน2(Binary Number) เช่น 0110101 การเขียนเลขระบบ 2’s Complement มีหลักการเขียนดังนี้คือ
1. การแสดงเลขระบบ 2’s Complement ต้องใช้หน่วยความจำ 16 Bit ก็ต่อเมื่อ นำจำนวนนั้นๆมาบวกกันแล้วมีค่าเกิน +127
2. ถ้าตัวเลขที่เราจะเขียนเป็นค่าบวกอยู่แล้วก็ไม่ต้องไปทำอะไรใช้เขียนได้เลย
3. ถ้าตัวเลขที่เราจะเขียนเป็นค่าลบ เราต้องกลับค่ามันก่อน แล้ว บวกด้วย 1
ตัวอย่าง
00000100 = +4 เครื่องหมายเป็นบวก ไม่ต้องทำอะไรปล่อยเอาไว้
11111100 = -4 → กลับค่า* มันก่อน เป็น 00000011 นำค่าที่ได้ ไปบวกด้วย 1 (เพื่อทำให้มันเป็น 2’s Complement)
*การกลับค่าคือ ตำแหน่งไหนเป็น 0 ให้เปลี่ยนเป็น 1 ตำแหน่งไหนเป็น1ให้เปลี่ยนเป็น 0 นำค่าที่กลับแล้วมาบวกด้วย 1
0 0 0 0 0 0 1 1 + 1 ———————————————— 0 0 0 0 0 1 0 0 → 4
2’s เป็นการทำให้จำนวนที่เป็นลบ กลายเป็นบวก เพื่อให้ คอมพิวเตอร์สามารถนำไปคำนวณได้ บางคนอาจสงสัยว่าทำไมต้องทำให้มันเป็นลบด้วย เอามาลบกันเลยไม่ได้เหรอ?? คำตอบคือไม่ได้เนื่องจาก คอมพิวเตอร์ Processer ที่ใช้ในหารคำนวณการบวกและการลบจะใช้ Processer เดียวกัน ถ้าจะเอาเลขมาลบกันจึงต้องใช้ Processser การบวกมากระทำดังนั้นจึงต้องทำเลขให้เป็นบวกก่อน
การลบเลข ในระบบ 2’s Complement
การลบในระบบ 2’s Complement คือการลบด้วยการบวกนั่นเอง
ตัวอย่าง เช่น 10 - 5 เราอาจเขียนเป็น 10 + (-5)
วิธีทำ 10 - 5 ต้องแปลง -5 ก่อน → 0 0 0 0 0 1 0 1 เมื่อได้เป็นฐาน2 แล้ว จากนั้น ก็กลับค่าแล้ว บวกด้วย 1 0 0 0 0 0 1 0 1 → 1 1 1 1 1 0 1 0 + 1 → 1 1 1 1 1 0 1 1 แปลง 10 เป็น ฐาน2 → 0 0 0 0 1 0 1 0 เมื่อแปลงครบทั้ง2 ค่าแล้ว นำทั้ง2 ค่านั้นมาบวกกัน 0 0 0 0 1 0 1 0 + 1 1 1 1 1 0 1 1 —————————— 1 (นำตัวทดออก) 0 0 0 0 0 1 0 1 → ผลลัพท์ = +5
การบวกเลขในระบบ 2’s Complement
ตัวอย่าง เช่น 9 + 5
แปลง +9 เป็นฐาน2 → 00001001
แปลง +5 เป็นฐาน2 → 00000101
0 0 0 0 1 0 0 1 + 0 0 0 0 0 1 0 1 —————————— 0 0 0 0 1 1 1 0 → ผลลัพธ์ = +14
ผู้เขียน : Neneme