ผู้ใช้: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