부호 있는 정수 ใช้ 2의 보수

3052 단어
ใน ใน ใน ฐาน เลข เรา ใส่ เครื่อง เครื่อง หมาย ลบ ลบ ข้าง หน้า หน้า เรา เป็น มนุษย์ มนุษย์ เรา ก็ เข้าใจ ได้ แต่ 컴퓨터 ต้อง แปลง ทุก สิ่ง อย่าง อย่าง เป็น เลข เลข ฐาน สอง ก่อน ก่อน
จึง จึง คำ คำ เกิด คือ เรา จะ แปลง แปลง ฐาน ฐาน สิบ สิบ สิบ สิบ สิบ สิบ ไป จึง จะ สามารถ สามารถ เอา เอา เอา เลขสอง เลขสอง เลขสอง เลขสอง กัน แบบ แบบ เลข ฐาน สอง และ และ สามารถ สามารถ แปลง กลับ ไป เป็น เป็น เลข ฐาน สิบ ได้ ได้ ถูก กัน แบบ แบบ แบบ แบบ แบบ แบบ แบบ แบบ แบบ แบบ แบบ แบบ แบบ แบบ แบบ แบบ เลข เลข เลข เลข เลข เลข ฐาน ฐาน สอง สอง สอง สอง และ และ สามารถ สามารถ สามารถ แปลง แปลง กลับ กลับ ไป ไป เป็น เป็น เป็น เลข สิบ สิบ ได้ ได้ ได้ ได้ ได้ สอง สอง ฐาน เลข เลข ต้อง ต้อง ต้อง ที่ โดย ต้อง มี มี ลอจิก พิเศษ อะไร เพิ่มเติม และ และ และ 공간 효율 (เก็บ ค่า ค่า ได้ จำนวน มาก สุด สุด)

มี มี มี คิด คน วิธี ข้อ ข้อ ดี ข้อ เสีย เสีย แตกต่าง กัน กัน ไป ผม จะ นำ เสนอ สาม วิธี วิธี ที่ มี คน คิด มา แล้ว ดัง นี้ นี้ นี้ นี้ นี้

1.



เก็บ เก็บ ให้ โดย โดย 부호 비트 เป็น สัญลักษณ์+ - ไป เลย (서명 크기) เหมือน ที่ ที่ เรา เรา ใช้ ใน เลข ฐาน สิบ โดย ให้ ให้ ให้ 가장 유용한 비트 (MSB) เป็น 부호 비트 เช่น 3 → 0011b ดัง นั้น -3 ก็ จะ เป็น เป็น → 1011b
ซึ่ง แบบน ี้มัน ดู เข้า ใจง ่าย สำหรับ มนุษย์ เยแหละ แต่ มข้อ เสีย
  • 더 나아가 +0 과 -0 (0000b → +0 과 1000b → -0)
  • 3+(-3) = 0 더 이상

  • 0011b  (3)
         +
    1011b  (-3)
    1110b ?? 3+(-3) = -5 แทนที่จะเป็น 0 ดังนั้นวิธีนี้ไม่เหมาะแล้ว
    

    2.



    1의 보수
    ใน ใน ที่ 1 เลข เลข ลบ และ เลข เลข บวก บวก เรา แค่ แค่ บิต บิต แรก แรก (msb) ส่วน วิธี วิธี วิธี นี้ นี้ ให้ กลับ ทุก 3-> 0011b ดัง นั้น -3-> 1100b จะ สังเกต ว่า บิต แรก ถ้า เป็น เป็น เป็น เป็น เป็น เป็น จะ หมาย ถึง จำนวน ลบ เหมือนกับวิธีที่ 1 หห้น เราลอง มาบว กกาน

    0001b  (1)
         +
    1100b  (-3)
    1101b // 1+(-3) = -2 
    -------------------------
    
    0010b  (2)
         +
    1100b  (-3)
    1110b // 2+(-3) = -1
    -------------------------
    
    0011b   (3)
         +
    1100b   (-3)
    1111b // 3+(-3) = -0 
    
    


    เราสรุปได้ว่า
    1101b = -2
    1110b = -1
    1111b = -0

    ด้วย ด้วย ด้วย นี้ วิธี สามารถ บวกลบ บวกลบ เลข ได้ ปกติ ปกติ เพียง แต่ แต่ ยัง เหลือ เหลือ 1 ปัญหา คือ ยัง ยัง มี -0 อยู่ (1111b)

    3.



    2의 보수
    วิธี วิธี 2 ที่ ดี ดี เหลือ ปัญหา อีก ข้อ ข้อ เดียว เดียว คือ คือ คือ ซึ่ง มัน ไม่ ไม่ ไม่ ที่ จะ มี มี -0 ซึ่ง ทำ ให้ เรา เก็บ ค่า ค่า ได้ น้อย ลง 1 ตัว ด้วย ด้วย ด้วย
    วิธีนี้แก้ไขได้ด้วย การเอา 1 มาบวกเข้าไปกับ 1의 보수 ดัง นั้น -3 จะ เป็น (11>0)
    เราлองมาพิศูจน์ กัน ว่า -0 จะหาย ไปรึป่าว

    0001b   (1)
         +
    1101b   (-3)
    1110b // 1+(-3) = -2 
    -------------------------
    
    0010b   (2)
         +
    1101b   (-3)
    1111b // 2+(-3) = -1
    -------------------------
    
    0011b    (3)
         +
    1101b    (-3)
    0000b // Yes !! 3+(-3) = 0
    


    เราสรุปได้ว่า
    1110b = -2
    1111b = -1
    0000b = 0

    จะเห็นว่า 2의 완벽한 조화
    ดแ้นตัว แปรที่ เป็in เป็in ลขบ วก และลบ (Signed) จึง จะถูก เก็บใ นรูปแบบ 2'complement 에서

    좋은 웹페이지 즐겨찾기