ओवरफ़्लो के बिना 2 unsigned int का औसत निकालना
(devblogs.microsoft.com)- जोड़कर 2 से भाग देने पर ओवरफ़्लो हो सकता है
→ (a + b) / 2
- अगर दोनों में से बड़ी संख्या पता हो, तो दोनों मानों का अंतर छोटी संख्या में जोड़कर 2 से भाग देना भी संभव है
→ low + (high - low) / 2
- कौन-सी संख्या बड़ी है यह पता न हो तब भी संभव एल्गोरिदम का पेटेंट 2016 में समाप्त हो गया था
→ (a / 2) + (b / 2) + (a & b & 1)
- SWAR : SIMD within a register
→ (a & b) + (a ^ b) / 2
- अगर compiler 64-bit को support करता है, तो casting
→ ((unsigned long long)a + b) / 2
- और उसके बाद अलग-अलग processor के assembly code हैं.. मूल लेख देखें
1 टिप्पणियां
रेमंड चेन का ब्लॉग The Old New Thing Windows डेवलपमेंट के पीछे की कहानियों से लेकर कई तरह के विषयों को कवर करता है.
कोरिया में इसका अनुवादित संस्करण "रेमंड चेन की Windows डेवलपमेंट 282 स्टोरीज़" नाम से प्रकाशित हुआ था, लेकिन अब वह आउट ऑफ प्रिंट है.