เทคนิคใดต่อไปนี้เป็นตัวเลือกที่ดีที่สุดสำหรับการหารจำนวนเต็ม 2 และทำไม
เทคนิค 1:
x = x >> 1;
เทคนิค 2:
x = x / 2;
นี่xคือจำนวนเต็ม
x = x >>> 1นั้น นอกจากนี้โปรดทราบว่าขึ้นอยู่กับแพลตฟอร์มและคอมไพเลอร์มันอาจจะค่อนข้างสมเหตุสมผลในการปรับการแบ่งแยกและการคูณด้วยตนเองโดยใช้กะ - การคิดถึงตัวควบคุมไมโครเช่นสนับสนุน ALU โดยตรงโดยไม่มีการคูณ
x /= 2เพราะx >>= 1ดูเหมือนว่าจะผูก monadic มากเกินไป)
x = x / 2 x /= 2การตั้งค่าอัตนัยอาจ :)
⬜=ชุดค่าผสมเหล่านี้ควรใช้ทุกครั้งที่เป็นไปได้ มันขจัดเสียงรบกวนและให้ความสำคัญกับความจริงที่xได้รับการแก้ไขในขณะที่=ผู้ปฏิบัติงานทั่วไปค่อนข้างแนะนำว่ามันใช้ค่าใหม่ที่เป็นอิสระจากเก่า - ควรหลีกเลี่ยงการประกอบรวมกัน (เพื่อที่จะสามารถอ่านได้ดังนั้นคนที่รู้เพียงดำเนินการทางคณิตศาสตร์) อาจมีจุดเช่นกัน แต่แล้วคุณจะต้องสละประโยชน์อย่างมาก++, --, +=มากเกินไป
xใหม่อีกครั้งไม่เหมาะสมในวิธีนี้: ควรเป็นอย่างใดอย่างหนึ่งx >>= 1หรือx /= 2ขึ้นอยู่กับสิ่งที่คุณตั้งใจจะแสดงออกด้วยการดำเนินการ ไม่ใช่เพราะมันเร็วกว่า (คอมไพเลอร์สมัยใหม่จะคอมไพล์ชุดเทียบเท่าทั้งหมดเพื่อการประกอบที่รวดเร็วและเหมือนกัน) แต่เพราะมันสับสนน้อยกว่า