में है या नहीं, मुझे आईसीयू लाइब्रेरी (यूनिकोड के लिए अंतर्राष्ट्रीय घटक) की "source\common\unicode\utf.h"
फ़ाइल में एक दिलचस्प बिट ट्विडलिंग मिला। बिट ट्विडलिंग का उद्देश्य यह जांचने के लिए किया गया था कि कोई संख्या किसी विशेष सीमा में है या नहीं।यह जांचने के लिए बिट करें कि कोई संख्या
// Is a code point in a range of U+d800..U+dbff?
#define U_IS_LEAD(c) (((c)&0xfffffc00)==0xd800)
मैं जादुई संख्या (0xfffffc00) पता लगा है से आते हैं:
MagicNumber = 0xffffffff - (HighBound - LowBound)
हालांकि, मैं यह भी पाया कि फार्मूला हर मनमाने ढंग से सीमा पर लागू नहीं होता। क्या यहां कोई व्यक्ति जानता है कि सूत्र किस परिस्थिति में काम करता है?
क्या यह जांचने के लिए एक और बिट twiddling है कि कोई संख्या विशेष सीमा में है या नहीं?
क्या आप "आमतौर पर लिखे गए" के लिए कोई संदर्भ प्रदान कर सकते हैं?व्यक्तिगत रूप से मुझे 'ए & ~ बी' की बजाय कम अंतर्ज्ञानी और 'ए और बी == सी' की बजाय 'ए & ~ बी' मिलती है, 'ए और ~ डी == ई' की तुलना में अधिक अंतर्ज्ञानी होती है क्योंकि यहां कम संचालन होते हैं, भले ही यह केवल मेरी व्यक्तिगत वरीयता। –
ध्यान रखें कि 'ए और बी == सी' का मतलब यह नहीं है कि आपको शायद इसका क्या अर्थ है (इसका मतलब है 'ए और (बी == सी) ')। 'ए & ~ बी' 'ए और ~ बी' के समान रूप से समान है, और मैं मानता हूं कि उत्तरार्द्ध इसका बेहतर प्रतिलेखन है, अगर केवल इसलिए कि यह आमतौर पर किया जाता है। –