Carry Flag vs Overflow Flag (การคูณไบนารี) - ความแตกต่างทั้งหมด

 Carry Flag vs Overflow Flag (การคูณไบนารี) - ความแตกต่างทั้งหมด

Mary Davis

การคูณเลขฐานสองแตกต่างจากการคูณที่คุณเรียนในโรงเรียนประถมเล็กน้อย ในการคูณเลขฐานสอง สามารถใช้แฟล็กสองแฟล็กเพื่อระบุข้อผิดพลาด: แฟล็กพกพาและแฟล็กโอเวอร์โฟลว์

การคูณเลขฐานสองเป็นวิธีการคูณเลขฐานสองเข้าด้วยกัน เลขฐานสองคือตัวเลขที่ประกอบด้วยตัวเลขสองหลักเท่านั้น: 0 และ 1 ตัวเลขเหล่านี้เป็นรากฐานของเทคโนโลยีดิจิทัลทั้งหมดและใช้ในทุกสิ่งตั้งแต่คอมพิวเตอร์ไปจนถึงโทรศัพท์มือถือ

แฟล็กในการคูณเลขฐานสองเป็นเหมือนตัวช่วยที่คอยติดตามสิ่งที่เกิดขึ้นในการดำเนินการ มีสี่แฟล็กที่สำคัญในการคูณไบนารี: แฟล็กพกพา แฟล็กโอเวอร์โฟลว์ แฟล็กเครื่องหมาย และแฟล็กศูนย์

แฟล็กพกพาเป็นบิตที่ตั้งค่าเมื่อการดำเนินการทางคณิตศาสตร์ส่งผลให้ ดำเนินการบิตที่สำคัญที่สุด ในการคูณเลขฐานสอง ธงพกพาจะถูกตั้งค่าเมื่อผลลัพธ์ของการคูณนั้นใหญ่เกินกว่าจะใส่ในรีจิสเตอร์ปลายทางได้

ดูสิ่งนี้ด้วย: “การตัดสิน” กับ “การรับรู้” (คู่ของสองลักษณะบุคลิกภาพ) – ความแตกต่างทั้งหมด

ค่าสถานะโอเวอร์โฟลว์เป็นบิตในรีจิสเตอร์ CPU ที่บ่งชี้เมื่อเกิดโอเวอร์โฟลว์เลขคณิต การโอเวอร์โฟลว์ทางคณิตศาสตร์เกิดขึ้นเมื่อผลลัพธ์ของการดำเนินการทางคณิตศาสตร์มีขนาดใหญ่เกินกว่าที่จะแสดงในพื้นที่ว่างที่มีได้

ในบทความนี้ เราจะสำรวจความแตกต่างระหว่างแฟล็กสองประเภทและวิธีการใช้ใน การคูณเลขฐานสอง

ดูสิ่งนี้ด้วย: Desu Ka VS Desu Ga: การใช้งาน & ความหมาย - ความแตกต่างทั้งหมด

เลขฐานสองเป็นส่วนประกอบส่วนใหญ่ของธง

บทความที่เกี่ยวข้อง

ความแตกต่างระหว่าง Nissan Zenki และ Nissan Kouki คืออะไร? (ตอบแล้ว)

โคออร์ดิเนชัน VS พันธะไอออนิก (เปรียบเทียบ)

นักปรัชญากับ นักปรัชญา (ความแตกต่าง)

การเขียนโปรแกรม

การคูณเลขฐานสอง

ตามแหล่งที่มา การคูณเลขฐานสองเป็นวิธีการคูณเลขฐานสองสองตัวเข้าด้วยกัน ในการคูณเลขฐานสอง แต่ละหลักในจำนวนแรกจะถูกคูณด้วยแต่ละหลักในจำนวนที่สอง และนำผลลัพธ์มาบวกกัน .

เลขฐานสองเป็นจำนวนที่มีสองหลักเท่านั้น: 0 และ 1 พวกมัน เป็นรากฐานของเทคโนโลยีดิจิทัลทั้งหมดและใช้ในทุกสิ่งตั้งแต่คอมพิวเตอร์ไปจนถึงโทรศัพท์มือถือ

เลขฐานสองขึ้นอยู่กับตัวเลขสองตัว เนื่องจากง่ายต่อการใช้งานโดยใช้ตัวเลขเพียงสองหลัก คอมพิวเตอร์ใช้เลขฐานสองเพราะสามารถแสดงได้ง่ายโดยใช้สถานะสองสถานะของสวิตช์คอมพิวเตอร์: เปิดและปิด กล่าวอีกนัยหนึ่ง เลขฐานสองเป็นวิธีที่สะดวกในการแสดงเอาต์พุตของสวิตช์ของคอมพิวเตอร์

เลขฐานสองยังใช้ในอุปกรณ์ดิจิทัล เช่น โทรศัพท์มือถือและกล้องดิจิทัล ในอุปกรณ์เหล่านี้ เลขฐานสองจะใช้เพื่อแสดงสถานะสองสถานะของแต่ละพิกเซลในจอแสดงผลของอุปกรณ์ ตัวอย่างเช่น กล้องดิจิทัลใช้เลขฐานสองเพื่อแสดงพิกเซลในภาพที่ถ่าย แต่ละพิกเซลจะเปิดหรือปิดก็ได้

ตัวอย่างเช่น สมมติว่าเราต้องการคูณเลขฐานสอง 101 กับ 11 เราจะเริ่มด้วยการคูณเลขหลักแรกของเลขตัวแรก (1) กับแต่ละตัว หลักของตัวเลขที่สอง (1 และ 0) สิ่งนี้ให้ผลลัพธ์ 1 และ 0 จากนั้นเราคูณหลักที่สองของเลขตัวแรก (0) โดยแต่ละหลักของเลขตัวที่สอง (1 และ 0) ซึ่งให้ผลลัพธ์เป็น 0 และ 0

สุดท้าย เราจะคูณเลขหลักที่สามของเลขตัวแรก (1) กับแต่ละเลขหลักของเลขตัวที่สอง (1 และ 0) ซึ่งให้ผลลัพธ์เป็น 1 และ 0 เมื่อเราเพิ่มผลลัพธ์ทั้งหมด เราจะได้ 1+0+0 ซึ่งเท่ากับ 1

การคูณเลขฐานสองเป็นกระบวนการที่ค่อนข้างง่าย แต่อาจทำให้ผู้ที่เพิ่งเริ่มใช้เลขฐานสองสับสนได้ ตัวเลข หากคุณต้องการความช่วยเหลือในการทำความเข้าใจการคูณเลขฐานสอง มีแหล่งข้อมูลออนไลน์มากมายที่สามารถช่วยคุณได้ ด้วยการฝึกฝนเพียงเล็กน้อย คุณควรจะเชี่ยวชาญกระบวนการนี้ในเวลาไม่นาน

แฟล็กคืออะไร

การคูณเลขฐานสองแตกต่างจากที่คุณคุ้นเคยจากการคูณทศนิยมเล็กน้อย ในการคูณทศนิยม คุณสามารถคูณตัวเลขสองตัวเข้าด้วยกันแล้วได้คำตอบ ด้วยการคูณเลขฐานสอง มันซับซ้อนกว่านั้นเล็กน้อย ในการคูณเลขฐานสอง แต่ละหลักในจำนวนที่ถูกคูณเรียกว่า "แฟล็ก"

แฟล็กแรกคือบิตที่มีนัยสำคัญน้อยที่สุด (LSB) และแฟล็กสุดท้ายคือบิตที่มีนัยสำคัญที่สุด (MSB) ในการคูณเลขฐานสองเข้าด้วยกัน คุณต้องคูณแต่ละแฟล็กในตัวเลขแรกด้วยแฟล็กทุกตัวในตัวเลขที่สอง

ค่าสถานะในการคูณเลขฐานสองเปรียบเสมือนผู้ช่วยที่คอยติดตามสิ่งที่เกิดขึ้นในการดำเนินงาน มีสี่ค่าสถานะที่สำคัญในการคูณเลขฐานสอง:

  • ธงยก
  • ธงล้น
  • ธงเครื่องหมาย <9
  • ค่าสถานะเป็นศูนย์

ค่าสถานะพกพาถูกตั้งค่าเมื่อมีการดำเนินการในบิตที่สำคัญที่สุดของการคูณ ค่าสถานะโอเวอร์โฟลว์ถูกตั้งค่าเมื่อผลการคูณมีขนาดใหญ่เกินไปที่จะพอดีกับพื้นที่ที่จัดสรร ธงเครื่องหมายถูกตั้งค่าเมื่อผลลัพธ์ของการคูณเป็นลบ และแฟล็กศูนย์จะถูกตั้งค่าเมื่อผลลัพธ์ของการคูณเป็นศูนย์

ฟังก์ชันของแต่ละแฟล็กสรุปไว้ในตารางต่อไปนี้:

แฟล็ก Function
Carry flag ตั้งค่าเมื่อผลลัพธ์ของการคูณที่ไม่ได้ลงนามมีขนาดใหญ่เกินกว่าที่จะใส่ในการลงทะเบียนปลายทาง
ตั้งค่าสถานะโอเวอร์โฟลว์ ตั้งค่าเมื่อผลการคูณที่ลงนามแล้วมีขนาดใหญ่เกินกว่าที่จะใส่ในรีจิสเตอร์ปลายทาง
Sign flag ใช้เพื่อระบุว่าผลลัพธ์ของการดำเนินการทางคณิตศาสตร์ครั้งล่าสุดสร้างค่าที่บิตที่มีนัยสำคัญที่สุด (บิตซ้ายสุด) ตั้งไว้หรือไม่
ตั้งค่าสถานะเป็นศูนย์ ใช้เพื่อตรวจสอบผลลัพธ์ของการดำเนินการทางคณิตศาสตร์ รวมถึงคำสั่งตรรกะระดับบิต

นักคณิตศาสตร์ Charles Babbage

ธงถือคืออะไร?

ตามแหล่งที่มา ค่าสถานะพกพาเป็นบิตที่ตั้งค่าเมื่อการดำเนินการทางคณิตศาสตร์ส่งผลให้เกิดการดำเนินการจากบิตที่มีนัยสำคัญที่สุด ในไบนารีการคูณ ค่าสถานะพกพาจะถูกตั้งค่าเมื่อผลลัพธ์ของการคูณมีขนาดใหญ่เกินกว่าจะใส่ในรีจิสเตอร์ปลายทางได้

ตัวอย่างเช่น หากคุณคูณตัวเลข 8 บิตสองตัว และผลลัพธ์คือ 9- หมายเลขบิต ธงพกพาจะถูกตั้งค่า ธงพกพามักใช้เพื่อตรวจจับข้อผิดพลาดโอเวอร์โฟลว์ในการดำเนินการทางคณิตศาสตร์ หากตั้งค่าธงพกพา ผลลัพธ์ของการดำเนินการจะใหญ่เกินไปและล้นออกมา

บางคนบอกว่านักคณิตศาสตร์ Charles Babbage ประดิษฐ์ธงพกพาในปี 1864 Babbage เป็นที่รู้จักดีที่สุดจากผลงานของเขาเกี่ยวกับเครื่องมือสร้างความแตกต่าง , คอมพิวเตอร์เชิงกลที่สามารถคำนวณได้

อย่างไรก็ตาม เครื่องยนต์อื่นยังไม่เสร็จสมบูรณ์ งานของ Babbage เกี่ยวกับธงพกพาได้รับการตีพิมพ์ในบทความชื่อ “On the Application of Machinery to the Computation of Mathematical Tables”

คนอื่น ๆ บอกว่า IBM ประดิษฐ์ขึ้นจริง ๆ ในทศวรรษ 1960 โดยเป็นส่วนหนึ่งของสายงาน System/360 ของพวกเขา ของคอมพิวเตอร์ แฟล็กพกพาของ IBM กลายเป็นมาตรฐานสำหรับผู้ผลิตคอมพิวเตอร์รายอื่น และยังคงใช้ในคอมพิวเตอร์สมัยใหม่ในปัจจุบัน

โปรเซสเซอร์ Intel 8086

แฟล็กโอเวอร์โฟลว์คืออะไร

ค่าสถานะโอเวอร์โฟลว์เป็นบิตในรีจิสเตอร์ CPU ที่บ่งชี้เมื่อเกิดโอเวอร์โฟลว์เลขคณิต การโอเวอร์โฟลว์ทางคณิตศาสตร์เกิดขึ้นเมื่อผลลัพธ์ของการดำเนินการทางคณิตศาสตร์มีขนาดใหญ่เกินกว่าที่จะแสดงในพื้นที่ว่างที่มีอยู่ แฟล็กโอเวอร์โฟลว์ถูกตั้งค่าเป็น 1 หากเกิดโอเวอร์โฟลว์ และเป็นเช่นนั้นตั้งค่าเป็น 0 ถ้าไม่มีการโอเวอร์โฟลว์

สามารถใช้ธงโอเวอร์โฟลว์เพื่อตรวจหาข้อผิดพลาดในการคำนวณทางคณิตศาสตร์ ตัวอย่างเช่น หากผลลัพธ์ของการดำเนินการเพิ่มเติมมีขนาดใหญ่เกินกว่าที่จะใส่ลงในรีจิสเตอร์ แสดงว่าโอเวอร์โฟลว์เกิดขึ้น และแฟล็กโอเวอร์โฟลว์จะถูกตั้งค่าเป็น 1

ในบางกรณี สามารถใช้แฟล็กโอเวอร์โฟลว์ได้ เพื่อประโยชน์ของมัน ตัวอย่างเช่น สามารถใช้โอเวอร์โฟลว์เลขคณิตจำนวนเต็มที่มีเครื่องหมายเพื่อใช้การคำนวณทางคณิตศาสตร์แบบรวม เลขคณิตแบบวนรอบคือประเภทเลขคณิตที่ "วนรอบ" เมื่อผลลัพธ์ของการดำเนินการมีขนาดใหญ่หรือเล็กเกินไปที่จะคำนวณ

ค่าสถานะโอเวอร์โฟลว์ใช้ในสถานการณ์ต่างๆ ที่หลากหลาย สามารถใช้เพื่อระบุเมื่อการดำเนินการทางคณิตศาสตร์ให้ผลลัพธ์เป็นค่าที่ใหญ่หรือเล็กเกินไปที่จะแสดงอย่างถูกต้อง นอกจากนี้ยังสามารถระบุเมื่อค่าถูกตัดทอน หรือข้อมูลสูญหายระหว่างการแปลง ในบางกรณี สามารถใช้โอเวอร์โฟลว์แฟล็กเพื่อตรวจหาข้อผิดพลาดในฮาร์ดแวร์หรือซอฟต์แวร์ได้

นี่เป็นคำถามที่สร้างความสับสนให้กับนักวิทยาศาสตร์คอมพิวเตอร์มานานหลายปี โอเวอร์โฟลว์แฟล็กเป็นส่วนประกอบสำคัญของโปรเซสเซอร์คอมพิวเตอร์สมัยใหม่ แต่ต้นกำเนิดนั้นถูกปกคลุมไปด้วยความลึกลับ บางคนเชื่อว่ามันถูกใช้ครั้งแรกในยุคแรกๆ ของคอมพิวเตอร์ ในขณะที่บางคนเชื่อว่ามันถูกประดิษฐ์ขึ้นในปี 1970

แฟล็กโอเวอร์โฟลว์ถูกนำมาใช้ครั้งแรกในโปรเซสเซอร์ Intel 8086 ซึ่งเปิดตัวในปี 1978 อย่างไรก็ตาม แนวคิดของโอเวอร์โฟลว์ตั้งค่าสถานะย้อนหลังไปถึงโปรเซสเซอร์รุ่นก่อนหน้าด้วยซ้ำ ตัวอย่างเช่น PDP-11 ซึ่งเปิดตัวในปี 1970 มีคุณสมบัติที่คล้ายกันซึ่งเรียกว่าบิตพกพา

ความแตกต่างระหว่างธงพกพาและธงล้น?

การคูณเลขฐานสองคือการคูณเลขฐานสองเข้าด้วยกัน ในการทำเช่นนี้ คุณจำเป็นต้องทราบเลขฐานสอง (บิต) ที่ประกอบกันเป็นตัวเลขแต่ละตัว แฟล็กพกพาและแฟล็กโอเวอร์โฟลว์เป็นบิตสำคัญสองบิตที่ใช้ในการคูณเลขฐานสอง

ธงพกพาใช้เพื่อระบุเมื่อเกิดการคูณเลขฐานสอง การพกพาเกิดขึ้นเมื่อผลลัพธ์ของการคูณมีขนาดใหญ่เกินไปที่จะพอดีกับจำนวนบิตที่กำหนด ตัวอย่างเช่น หากคุณกำลังคูณตัวเลข 8 บิตสองตัว และผลลัพธ์เป็น 9 บิต แสดงว่ามีการพกพาเกิดขึ้น

ธงโอเวอร์โฟลว์ใช้เพื่อระบุเมื่อโอเวอร์โฟลว์เกิดขึ้นในการคูณเลขฐานสอง การโอเวอร์โฟลว์เกิดขึ้นเมื่อผลลัพธ์ของการคูณน้อยเกินไปที่จะพอดีกับจำนวนบิตที่กำหนด ตัวอย่างเช่น หากคุณกำลังคูณตัวเลข 8 บิตสองตัว ผลลัพธ์ที่ได้คือ 7 บิต แฟล็กโอเวอร์โฟลว์ยังใช้เมื่อผลลัพธ์เป็นลบ ตัวอย่างเช่น หากเรากำลังคูณตัวเลข 8 บิตสองตัว และผลลัพธ์คือ -16 บิต เราจะต้องตั้งค่าแฟล็กโอเวอร์โฟลว์

กล่าวโดยย่อ แฟล็กพกพาใช้เพื่อระบุ การดำเนินการทางคณิตศาสตร์ส่งผลให้เกิดบิตที่มีนัยสำคัญมากที่สุด ซึ่งหมายความว่าการดำเนินการสร้างผลลัพธ์ที่ไม่ได้ลงนามซึ่งมีขนาดใหญ่เกินกว่าที่จะแสดงในจำนวนบิตที่กำหนด ตัวอย่างเช่น หากคุณกำลังบวกเลข 8 บิตสองตัวและผลลัพธ์เป็น 9 บิต ธงพกพาจะถูกตั้งค่า

ในทางกลับกัน แฟล็กโอเวอร์โฟลว์ใช้เพื่อระบุว่าการดำเนินการทางคณิตศาสตร์ได้ผลลัพธ์เป็นตัวเลขที่มีเครื่องหมายซึ่งเล็กหรือใหญ่เกินไปที่จะแสดงในจำนวนที่กำหนด บิต ดังนั้นเราจึงสามารถเรียกธงพกพาว่าตรงกันข้ามกับธงโอเวอร์โฟลว์

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับความแตกต่างระหว่างธงพกพาและธงโอเวอร์โฟลว์ โปรดดูวิดีโอนี้:

โอเวอร์โฟลว์ และธงพกพา

ธงพกพาในการประกอบคืออะไร?

ตามแหล่งที่มา แฟล็กพกพาเป็นแฟล็กสถานะใน CPU ที่ระบุเมื่อมีการพกพาหรือยืมเลขคณิต มักจะใช้ร่วมกับคำสั่งบวกและลบ เมื่อมีการดำเนินการเพิ่มหรือลบคำสั่ง แฟล็กการพกพาจะถูกตั้งค่าเป็น 0 หากไม่มีการพกพาหรือการยืมเกิดขึ้น หรือ 1 หากมีการพกพาหรือการยืมเกิดขึ้น

ธงพกพาสามารถใช้สำหรับการเปลี่ยนบิตได้เช่นกัน ตัวอย่างเช่น หากค่าสถานะพกพาถูกตั้งค่าเป็น 1 และดำเนินการคำสั่ง bitshift ผลลัพธ์ที่ได้คือบิตถูกเลื่อนไปทางซ้ายหนึ่งตำแหน่ง และค่าสถานะพกพาจะถูกตั้งค่าเป็นค่าของบิตที่ถูกเลื่อนออก .

ฉันจะรู้ได้อย่างไรว่าแฟล็กของฉันโอเวอร์โฟลว์

หากคุณกำลังทำการคูณเลขฐานสองและคุณลงเอยด้วยจำนวนที่มากเกินกว่าจะพอดีกับพื้นที่ที่คุณกำหนด ซึ่งเรียกว่าล้น เมื่อสิ่งนี้เกิดขึ้น คุณมักจะจบลงด้วยเลขศูนย์จำนวนมากที่ส่วนท้ายของผลลัพธ์

ตัวอย่างเช่น หากคุณคูณ 11 (1011 ในรูปแบบไบนารี) ด้วย 11 (1011 ในรูปแบบไบนารี) คุณควรได้ 121 (1111001 ในรูปแบบไบนารี) อย่างไรก็ตาม หากคุณมีเพียงสี่บิตในการทำงาน คุณจะจบลงด้วยเลขศูนย์ในตอนท้าย เช่น 0100 (โอเวอร์โฟลว์)

สรุป

  • ไบนารี การคูณเป็นวิธีการคูณเลขฐานสองสองตัวเข้าด้วยกัน ในการคูณเลขฐานสอง แต่ละหลักในจำนวนแรกจะถูกคูณด้วยแต่ละหลักในจำนวนที่สอง และนำผลลัพธ์มาบวกกัน เลขฐานสองคือตัวเลขที่ประกอบด้วยตัวเลขสองหลักเท่านั้น: 0 และ 1
  • มีสี่ธงที่สำคัญในการคูณเลขฐานสอง: ธงพกพา ธงล้น ธงเครื่องหมาย และธงศูนย์
  • แครี่แฟล็กใช้เพื่อระบุว่าการดำเนินการทางเลขคณิตส่งผลให้มีบิตที่มีนัยสำคัญมากที่สุด ซึ่งหมายความว่าการดำเนินการได้สร้างผลลัพธ์ที่ไม่ได้ลงนามซึ่งมีขนาดใหญ่เกินกว่าที่จะแสดงในจำนวนบิตที่กำหนด
  • ธงโอเวอร์โฟลว์ใช้เพื่อระบุว่าการดำเนินการทางคณิตศาสตร์ส่งผลให้ตัวเลขที่ลงนามนั้นเล็กหรือใหญ่เกินไปที่จะแสดงในจำนวนบิตที่กำหนด ดังนั้นเราจึงสามารถเรียกการถือธงว่าสิ่งที่ตรงกันข้ามกับโอเวอร์โฟลว์

Mary Davis

Mary Davis เป็นนักเขียน ผู้สร้างเนื้อหา และนักวิจัยตัวยงที่เชี่ยวชาญด้านการวิเคราะห์เปรียบเทียบในหัวข้อต่างๆ ด้วยปริญญาด้านสื่อสารมวลชนและประสบการณ์กว่า 5 ปีในสาขานี้ แมรี่มีความปรารถนาที่จะให้ข้อมูลที่เป็นกลางและตรงไปตรงมาแก่ผู้อ่านของเธอ ความรักในการเขียนของเธอเริ่มขึ้นเมื่อเธอยังเด็กและเป็นแรงผลักดันให้เธอประสบความสำเร็จในอาชีพการเขียน ความสามารถของ Mary ในการค้นคว้าและนำเสนอสิ่งที่ค้นพบในรูปแบบที่เข้าใจง่ายและมีส่วนร่วมทำให้เธอเป็นที่ชื่นชอบของผู้อ่านทั่วโลก เมื่อเธอไม่ได้เขียน แมรี่ชอบท่องเที่ยว อ่านหนังสือ และใช้เวลากับครอบครัวและเพื่อนฝูง