คำถามติดแท็ก twos-complement

23
“ ส่วนประกอบของ 2” คืออะไร
ผมอยู่ในระบบคอมพิวเตอร์หลักสูตรและได้รับการดิ้นรนในส่วนหนึ่งกับสองของส่วนประกอบ ฉันต้องการที่จะเข้าใจ แต่ทุกอย่างที่ฉันอ่านไม่ได้นำมารวมกันเพื่อฉัน ฉันอ่านบทความวิกิพีเดียและบทความอื่น ๆ รวมถึงหนังสือเรียนด้วย ดังนั้นฉันต้องการเริ่มโพสต์วิกิชุมชนนี้เพื่อกำหนดว่า Complement ของ Two คืออะไรวิธีการใช้และวิธีที่จะมีผลกับตัวเลขระหว่างการดำเนินการเช่น cast (จากการเซ็นชื่อเป็น unsigned และกลับกัน), bit-wise และ bit-shift . สิ่งที่ฉันหวังไว้คือคำจำกัดความที่ชัดเจนและรัดกุมซึ่งโปรแกรมเมอร์สามารถเข้าใจได้ง่าย

18
เหตุใดจึงต้องใช้ส่วนประกอบสองอย่างแทนเครื่องหมายและขนาดสำหรับหมายเลขที่เซ็นชื่อ
ฉันแค่อยากรู้ว่าถ้ามีเหตุผลทำไมเพื่อเป็นตัวแทน -1 ในเลขฐานสองจะใช้สองส่วน: พลิกบิตและเพิ่ม 1? -1 แทนด้วย 11111111 (ส่วนเสริมสองส่วน) แทน (สำหรับฉันที่เข้าใจง่ายขึ้น) 10000001 ซึ่งเป็นเลขฐานสอง 1 ที่มีบิตแรกเป็นค่าลบ คำเตือน: ฉันไม่พึ่งพาเลขคณิตเลขฐานสองสำหรับงานของฉัน!

11
~ x + ~ y == ~ (x + y) เป็นเท็จเสมอหรือไม่
รหัสนี้ประเมินว่าเป็นเท็จเสมอหรือไม่ ตัวแปรทั้งสองเป็นส่วนเสริมที่มีการลงนามของทั้งสอง ~x + ~y == ~(x + y) ฉันรู้สึกว่าควรมีจำนวนที่ตรงกับเงื่อนไข ฉันลองทดสอบตัวเลขระหว่าง-5000และ5000ไม่เคยประสบความเท่าเทียมกัน มีวิธีการตั้งค่าสมการเพื่อหาคำตอบให้กับเงื่อนไขหรือไม่? การสลับหนึ่งรายการสำหรับอีกรายการหนึ่งจะทำให้เกิดข้อบกพร่องที่ร้ายกาจในโปรแกรมของฉันหรือไม่
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.